{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "-----\n",
    "## Predicting Global Supply Chain Outcomes for Essential HIV Medicines using Machine Learning Methods\n",
    "------\n",
    "\n",
    "### Author: Tichakunda Mangono\n",
    "\n",
    "### **Capstone Project, Udacity Machine Learning Engineer Nanodegree, September 2017**\n",
    "\n",
    "\n",
    "\n",
    "- ***Key Question:*** *Can we use procurement transaction data to predict whether a delivery is delayed and estimating the length of the delay*\n",
    "- ***Main Data Source:*** *From The Website: https://data.pepfar.net/additionalData. Procurement transaction data from the Supply Chain Management System (SCMS), administered by the United States Agency for International Development (USAID), provides information on health commodities, prices, and delivery destinations.*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Notebook 1: Data Cleaning & Feature Engineering"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----\n",
    "## 1. Data Cleaning\n",
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Import the relevant libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import warnings; warnings.simplefilter('ignore')\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import time\n",
    "import my_helper_functions as mhf\n",
    "import pandas_profiling as prof\n",
    "import missingno as msno\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load the data files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sheetnames:  ['Summary ', 'Data Purpose and Notes', 'Data Dictionary', 'SCMS Delivery History Dataset']\n",
      "summary  shape: (0, 0)\n",
      "purpose  shape: (0, 0)\n",
      "ref  shape: (33, 5)\n",
      "data  shape: (10324, 33)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>Project Code</th>\n",
       "      <th>PQ #</th>\n",
       "      <th>PO / SO #</th>\n",
       "      <th>ASN/DN #</th>\n",
       "      <th>Country</th>\n",
       "      <th>Managed By</th>\n",
       "      <th>Fulfill Via</th>\n",
       "      <th>Vendor INCO Term</th>\n",
       "      <th>Shipment Mode</th>\n",
       "      <th>...</th>\n",
       "      <th>Unit of Measure (Per Pack)</th>\n",
       "      <th>Line Item Quantity</th>\n",
       "      <th>Line Item Value</th>\n",
       "      <th>Pack Price</th>\n",
       "      <th>Unit Price</th>\n",
       "      <th>Manufacturing Site</th>\n",
       "      <th>First Line Designation</th>\n",
       "      <th>Weight (Kilograms)</th>\n",
       "      <th>Freight Cost (USD)</th>\n",
       "      <th>Line Item Insurance (USD)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>100-CI-T01</td>\n",
       "      <td>Pre-PQ Process</td>\n",
       "      <td>SCMS-4</td>\n",
       "      <td>ASN-8</td>\n",
       "      <td>Côte d'Ivoire</td>\n",
       "      <td>PMO - US</td>\n",
       "      <td>Direct Drop</td>\n",
       "      <td>EXW</td>\n",
       "      <td>Air</td>\n",
       "      <td>...</td>\n",
       "      <td>30</td>\n",
       "      <td>19</td>\n",
       "      <td>551.0</td>\n",
       "      <td>29.0</td>\n",
       "      <td>0.97</td>\n",
       "      <td>Ranbaxy Fine Chemicals LTD</td>\n",
       "      <td>Yes</td>\n",
       "      <td>13</td>\n",
       "      <td>780.34</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>108-VN-T01</td>\n",
       "      <td>Pre-PQ Process</td>\n",
       "      <td>SCMS-13</td>\n",
       "      <td>ASN-85</td>\n",
       "      <td>Vietnam</td>\n",
       "      <td>PMO - US</td>\n",
       "      <td>Direct Drop</td>\n",
       "      <td>EXW</td>\n",
       "      <td>Air</td>\n",
       "      <td>...</td>\n",
       "      <td>240</td>\n",
       "      <td>1000</td>\n",
       "      <td>6200.0</td>\n",
       "      <td>6.2</td>\n",
       "      <td>0.03</td>\n",
       "      <td>Aurobindo Unit III, India</td>\n",
       "      <td>Yes</td>\n",
       "      <td>358</td>\n",
       "      <td>4521.5</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>100-CI-T01</td>\n",
       "      <td>Pre-PQ Process</td>\n",
       "      <td>SCMS-20</td>\n",
       "      <td>ASN-14</td>\n",
       "      <td>Côte d'Ivoire</td>\n",
       "      <td>PMO - US</td>\n",
       "      <td>Direct Drop</td>\n",
       "      <td>FCA</td>\n",
       "      <td>Air</td>\n",
       "      <td>...</td>\n",
       "      <td>100</td>\n",
       "      <td>500</td>\n",
       "      <td>40000.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>0.80</td>\n",
       "      <td>ABBVIE GmbH &amp; Co.KG Wiesbaden</td>\n",
       "      <td>Yes</td>\n",
       "      <td>171</td>\n",
       "      <td>1653.78</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3 rows × 33 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   ID Project Code            PQ # PO / SO # ASN/DN #        Country  \\\n",
       "0   1   100-CI-T01  Pre-PQ Process    SCMS-4    ASN-8  Côte d'Ivoire   \n",
       "1   3   108-VN-T01  Pre-PQ Process   SCMS-13   ASN-85        Vietnam   \n",
       "2   4   100-CI-T01  Pre-PQ Process   SCMS-20   ASN-14  Côte d'Ivoire   \n",
       "\n",
       "  Managed By  Fulfill Via Vendor INCO Term Shipment Mode  \\\n",
       "0   PMO - US  Direct Drop              EXW           Air   \n",
       "1   PMO - US  Direct Drop              EXW           Air   \n",
       "2   PMO - US  Direct Drop              FCA           Air   \n",
       "\n",
       "             ...            Unit of Measure (Per Pack) Line Item Quantity  \\\n",
       "0            ...                                    30                 19   \n",
       "1            ...                                   240               1000   \n",
       "2            ...                                   100                500   \n",
       "\n",
       "  Line Item Value Pack Price Unit Price             Manufacturing Site  \\\n",
       "0           551.0       29.0       0.97     Ranbaxy Fine Chemicals LTD   \n",
       "1          6200.0        6.2       0.03      Aurobindo Unit III, India   \n",
       "2         40000.0       80.0       0.80  ABBVIE GmbH & Co.KG Wiesbaden   \n",
       "\n",
       "  First Line Designation Weight (Kilograms) Freight Cost (USD)  \\\n",
       "0                    Yes                 13             780.34   \n",
       "1                    Yes                358             4521.5   \n",
       "2                    Yes                171            1653.78   \n",
       "\n",
       "  Line Item Insurance (USD)  \n",
       "0                       NaN  \n",
       "1                       NaN  \n",
       "2                       NaN  \n",
       "\n",
       "[3 rows x 33 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Data Source: https://data.pepfar.net/additionalData, downloaded as excel file\n",
    "full = pd.ExcelFile('./Data/Source/SCMS Data 20151023.xlsx')\n",
    "print(\"Sheetnames: \",full.sheet_names)\n",
    "parsed_data = mhf.parse_raw_data(full)\n",
    "for df in parsed_data:\n",
    "    print(df.name,\" shape:\",df.shape )\n",
    "\n",
    "# View ref top rows\n",
    "summary, purpose, ref, data = parsed_data\n",
    "data.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Check Duplicates"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.duplicated().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Rename the columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Old columns:  Index(['ID', 'Project Code', 'PQ #', 'PO / SO #', 'ASN/DN #', 'Country',\n",
      "       'Managed By', 'Fulfill Via', 'Vendor INCO Term', 'Shipment Mode',\n",
      "       'PQ First Sent to Client Date', 'PO Sent to Vendor Date',\n",
      "       'Scheduled Delivery Date', 'Delivered to Client Date',\n",
      "       'Delivery Recorded Date', 'Product Group', 'Sub Classification',\n",
      "       'Vendor', 'Item Description', 'Molecule/Test Type', 'Brand', 'Dosage',\n",
      "       'Dosage Form', 'Unit of Measure (Per Pack)', 'Line Item Quantity',\n",
      "       'Line Item Value', 'Pack Price', 'Unit Price', 'Manufacturing Site',\n",
      "       'First Line Designation', 'Weight (Kilograms)', 'Freight Cost (USD)',\n",
      "       'Line Item Insurance (USD)'],\n",
      "      dtype='object')\n",
      "New columns:  Index(['id', 'proj_code', 'pq_no', 'po_no', 'ship_no', 'country', 'mngr',\n",
      "       'fulfill_via', 'vendor_terms', 'ship_mode', 'pq_date', 'po_date',\n",
      "       'del_date_scheduled', 'del_date_client', 'del_date_recorded',\n",
      "       'prod_grp', 'sub_class', 'vendor', 'itm_desc', 'molecule_test', 'brand',\n",
      "       'dosage', 'dosage_form', 'units', 'ln_itm_qty', 'ln_itm_val',\n",
      "       'pk_price', 'unit_price', 'factory', 'first_line', 'weight',\n",
      "       'freight_cost', 'line_itm_ins'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "newcol_list = ['id', 'proj_code', 'pq_no', 'po_no', 'ship_no', 'country'\n",
    "     , 'mngr', 'fulfill_via','vendor_terms', 'ship_mode', 'pq_date'\n",
    "     , 'po_date', 'del_date_scheduled' ,'del_date_client', 'del_date_recorded'\n",
    "     , 'prod_grp', 'sub_class', 'vendor', 'itm_desc', 'molecule_test', 'brand'\n",
    "     , 'dosage','dosage_form', 'units', 'ln_itm_qty', 'ln_itm_val', 'pk_price'\n",
    "     , 'unit_price', 'factory', 'first_line', 'weight', 'freight_cost', 'line_itm_ins']\n",
    "data = mhf.rename_data_columns(data, newcol_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Update Data Reference Dictionary"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5    Country\n",
      "Name: FieldName, dtype: object \n",
      "=======\n",
      ", 5    Text\n",
      "Name: DataType, dtype: object \n",
      "=======\n",
      ", 5    Destination country\n",
      "Name: FieldDescription, dtype: object \n",
      "=======\n",
      ", 5    NaN\n",
      "Name: FieldNotes, dtype: object \n",
      "=======\n",
      "          Examples: \n",
      "0    Côte d'Ivoire\n",
      "1          Vietnam\n",
      "2    Côte d'Ivoire\n",
      "3          Vietnam\n",
      "4          Vietnam\n",
      "Name: country, dtype: object \n",
      "=======\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Add these new columns to reference and make a lookup function in case we forget what it means\n",
    "ref['NewColumn']= data.columns \n",
    "#ref.to_excel(\"Reference.xlsx\") # save to disk\n",
    "# Example usage of the reference function below:\n",
    "mhf.getReferenceInfo(data, data.columns[5], ref)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Convert columns data types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total Number of Columns: 33\n",
      "Breakdown....\n",
      "\n",
      "Type: float64 , Count: 4 \n",
      "Columns and null counts---: \n",
      "ln_itm_val        0\n",
      "pk_price          0\n",
      "unit_price        0\n",
      "line_itm_ins    287\n",
      "dtype: int64\n",
      "\n",
      "Type: int64 , Count: 3 \n",
      "Columns and null counts---: \n",
      "id            0\n",
      "units         0\n",
      "ln_itm_qty    0\n",
      "dtype: int64\n",
      "\n",
      "Type: datetime64[ns] , Count: 3 \n",
      "Columns and null counts---: \n",
      "del_date_scheduled    0\n",
      "del_date_client       0\n",
      "del_date_recorded     0\n",
      "dtype: int64\n",
      "\n",
      "Type: object , Count: 23 \n",
      "Columns and null counts---: \n",
      "proj_code           0\n",
      "pq_no               0\n",
      "po_no               0\n",
      "ship_no             0\n",
      "country             0\n",
      "mngr                0\n",
      "fulfill_via         0\n",
      "vendor_terms        0\n",
      "ship_mode         360\n",
      "pq_date             0\n",
      "po_date             0\n",
      "prod_grp            0\n",
      "sub_class           0\n",
      "vendor              0\n",
      "itm_desc            0\n",
      "molecule_test       0\n",
      "brand               0\n",
      "dosage           1736\n",
      "dosage_form         0\n",
      "factory             0\n",
      "first_line          0\n",
      "weight              0\n",
      "freight_cost        0\n",
      "dtype: int64\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# First use helper function to get column report and blocks of data by column type\n",
    "blocks = mhf.get_blocks_by_dtype(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['float64', 'int64', 'datetime64[ns]', 'object'])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "blocks.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(10324, 4) (10324, 3) (10324, 3) (10324, 23)\n"
     ]
    }
   ],
   "source": [
    "dfloat, dint, ddate, dobject = [d for d in blocks.values()]\n",
    "print(dfloat.shape, dint.shape, ddate.shape, dobject.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Investigate Missing Values\n",
    "\n",
    "The previous section revealed some null values in a few columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABZoAAALWCAYAAADPrSZrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xu8Z3O9+PHXmBmXGBqZTiknl/LuqAinEhIndegy6XCo\nJJXq6KSilCShKyEp3VROdUJxwuFHIRkinVzS5cQbSSldyLgTZub3x2ftfNtn9syeWWvP/qz5vp6P\nxzx2e33X9/t97WVPe/b7u76fNWXBggVIkiRJkiRJkrS0VpjsAEmSJEmSJElSvzloliRJkiRJkiS1\n4qBZkiRJkiRJktSKg2ZJkiRJkiRJUisOmiVJkiRJkiRJrTholiRJkiRJkiS14qBZkiRJkiRJktSK\ng2ZJkiRJkiRJUivTJjtAkiRJkiRJkoZZRDwKeC3wxcycN9k9S8MzmidARKwaEVtPdsdYau8DG7tQ\nex/U31h7H9g4LGo/hrX3Qf2NtfeBjV2ovQ/qb6y9D2wcFrUfw9r7oP7G2vvAxi7U3gf1N9beB71p\nnAFcBhwErDrJOUvNQfPEOAS4OCK2m+yQMdTeBzZ2ofY+qL+x9j6wcVjUfgxr74P6G2vvAxu7UHsf\n1N9Yex/YOCxqP4a190H9jbX3gY1dqL0P6m+svQ8qb4yI1YGrgZmUIfPTJrdo6Tlonhi/aj6eGhE7\nTmrJwtXeBzZ2ofY+qL+x9j6wcVjUfgxr74P6G2vvAxu7UHsf1N9Yex/YOCxqP4a190H9jbX3gY1d\nqL0P6m+svQ8qbmyGzD8BbgReDcwHnjCpUS04aJ4Yc4AbgJ8Cp0fESwAiopbjPYe6+8DGLsyh7j6o\nv3EOdfeBjcNiDnUfwznU3Qf1N86h7j6wsQtzqLsP6m+cQ919YOOwmEPdx3AOdfdB/Y1zqLsPbOzC\nHOrug/ob51B3H1Ta2AyZfwr8EtgzMy+hnNm8c0RMm+y+pdG74J64B3g08FXgW5RXTF6WmfMBImLq\nZMZRfx/Y2IXa+6D+xtr7wMZhUfsxrL0P6m+svQ9s7ELtfVB/Y+19YOOwqP0Y1t4H9TfW3gc2dqH2\nPqi/sfY+qLCxec7/ogzA98jMW5qbrgU2A+aN9PWJg+aORMSU5uMKmXkzcAnwELAfcB7wjYjYJiKO\nBPaxz8Zh7OtDY+19NrZv6osaj2Gf+vrQWHufjcPR14fG2vts7LavZn05hrX29aGx9j4bh6OvD421\n9/WhMTPnAYcBr8rM3w/cdDzwd8CblnVTF6ZNdkCfNd+0UwAGXmVY0Hy8E/iXzDwpIt4GHA58D/gL\n8I/22TgsfX1orL3Pxk7aVqa8an0U8P1aXxmu+Rj2oa8PjbX32TgcfX1orL3Pxk7aVgFeBKwF/CIz\nL5vo51waNR/DPvT1obH2PhuHo68PjbX39aVxUGZeupDNtwAJ/BNwfERMycwFC9mvSp7RvJQiYjXg\ny5Rvyqsi4n0Rse7Af/wLgccCNK+crAY8CEwF/n7Y+2wcjr4+NNbeZ2NnZgIvAT4MPGfk1e2a1H4M\na+/rQ2PtfTYOR18fGmvvs7GTthnAxcAngI8DF0fERyJiek0/o2s+hn3o60Nj7X02DkdfHxpr7+tR\n46oR8e6IODoiPh4Razbb//qzLzNvA44Cdo2IF/dpyAwOmpdKRKwKXAoEcCVlPZV9gMMi4jHNblcB\n60fEEyPia8BzgT2A04BvR8SLhrXPxuHo60Nj7X02duoOypWGtwJOALaY4OdbIrUfw9r7+tBYe5+N\nw9HXh8ba+2zspG0a8J/A7cDLgc2B/YEDgX+s5Rfqmo9hH/r60Fh7n43D0deHxtr7etS4GnA5sBvw\nfOA1wGUR8ZjBn31Rhs7fBc4E9ouI9Sayq2sunbF0DgLuB3bLzN8CRMQRwFsprzr8GbiV8o+n84E1\ngJdl5v9ExNWUV0x+M8R9Ng5HXx8aa++zsQMRMTUz74+Icylvi3o6cHJEvAq4PDMfHth3st6WVPUx\n7EFfHxpr77NxOPr60Fh7n43trQI8Bfh6Zv68aTsdeA8wvRkI3JWZDzW3+bO5n319aKy9z8bh6OtD\nY+191Tc2w+MjKMt37AzcDazftLyJsowHAM3PvLkRcRplDeddIuILmXnXRPV1yTOal856wB8y87fx\nyJUpjwRWAv4ZIDP/CPyo2bZLZv5Ps/2XwJsy89oh7rNxOPr60Fh7n40dyHKRBSj/qHgW8O/An4AT\ngU0AImLbZt/JOouq6mPYg74+NNbeZ+Nw9PWhsfY+G1toftFeA3gCf3vS01+a7cdQ3oH0nYh4a9Pj\nz+Z+9vWhsfY+G4ejrw+NtfdV39j8LHsi5ZoEt2Tm3cBvKb+XPioidoyI50TE4wbu8zXgLMqAeseJ\nauuag+alswrN+i0DA4y7KG/NXmNgv0OBF2TmD+CRNVeyeXV+iPtsHI6+PjTW3mdjB6K8RRfgImBK\nZl5PebvSn4BvNmc6HxMRa01kx2JUfQx70NeHxtr7bByOvj401t5nYwuZuSDLmWZfBj4QER+OiH0o\nbxG+hrKkxtua3Q+IiN0momOcqjyGPerrQ2PtfTYOR18fGmvv60vjTOAfBj6fDqxNOaP5TOA8ysX/\nnjKyQ2a+nfKz8epl0NcJB81L53PAPRHxPICImN5sf4Dm6pYAmfnbzPxVs88Kuexeja+9z8bh6OtD\nY+19Ni6hiFg5Il4UEa+MiI2bt9uOLI1xFfCkiNim6dgRWB3YHvhclosuTJZqjmFP+/rQWHufjcPR\n14fG2vtsXEJRLvD3uIh4+sDmDwNHAzsBrwfWAl4NHJuZX6Wsq/kQk3tNhWqOYU/7+tBYe5+Nw9HX\nh8ba+/rS+GXg/CgXxAV4P3ATsCvwGOBDwNOANzR905vmPTMzl2FnK67RvBgRsTLlHziPA67KzOso\nV6q8OTN/AeWVjyhnzD1q1H1XpSwsfl5m3jiMfTYOR18fGmvvs7GTtpEr2M+grHd1BbAncE2Ut089\nRFk+Y/XmLsdRrjB8LfCuiLgGuGSi/7FR8zHsQ18fGmvvs3E4+vrQWHufjZ20zaBcZGldYIOI+A5w\nRGZeBLw3Ig6m/KL9ksy8vvl5PS8zr4mIX1HeCj3haj6GfejrQ2PtfTYOR18fGmvv61njNpQB8tXA\ndVleSP3rWdTAuylnYV+fmfOBoyJiE+AlEfG+XDZnWXfOM5oXofmH0aWUVx2OB34cEe/IzAcpg4nB\nb5AVKOu83Ddw32Mpr9ZPyNCi9j4bh6OvD42199nYSds04FTKRR52BzYA9srMa6C8fSrLxRMuBbaO\niJMpa3W9GNiheZhPASt33Taqs9pj2Ie+PjTW3mfjcPT1obH2Phs7aVsJ+DbwMPBB4F+AjYFDRvZp\nfoleg/KOo8dn5ryIWCEi1qa8DfrKrrsW0lntMexDXx8aa++zcTj6+tBYe1/PGn8I/AfweeCnwJci\nYnsoy0hFxMqZeX8W8+OR5R5/TzlBqremLFgwWddWqFuUU9TPoJztdhDlypD/Tlk75R+yuYrlwL6P\nAX4NvJ3yzX485e1fz8vMq4atz8bh6OtDY+19NnbWtw7lir2HZuY3mm1bAJsDqwE/pqz/uDflTOab\ngN0z87Jm378HpmbzNqqJ0INjWHVfHxpr77NxOPr60Fh7n42d9W1DWVdyj8y8uNm2C/B1YN3M/EOz\n7UXACZQlrg6lLKPxr5QXg7fNcm2FCdGDY1h1Xx8aa++zcTj6+tBYe1+PGqdSLjo/C3gvcD2wS9Ow\ngPKunpMG9p+ZmXOb/70GcBJlbek9KO/w6d3Q1jOax7Y65a3Xp2XmlZl5A+U/+MPA+hGxbjQXjmpe\niZ/f3LYuZW2Y3YGtJ+qbtwd9Ng5HXx8aa++zsRsrAI9unnPkF9mLgXdQzpw6ETiZctbzJyhnO182\ncufM/M1EDpkbtR/D2vv60Fh7n43D0deHxtr7bOzGDMrQeNB9wG3A+yPilIg4iPJC8WHAUyjLXn0R\neC7w4okcMjdqP4a19/WhsfY+G4ejrw+Ntff1pXEK8GTKkoyXZ+YdmfklYF/K2cofjIhXQxkyA/tF\nxElRlpI6gbIkyIcy8+Hs4ZAZHDQvVJTT7FenfHPcNXDTVMpbu44EbgDOiojXA2Tmn4BfAAfwyDfv\nj4exz8bh6OtDY+19NnbqTuBeYNvm84Mob4l6PuWV7KMoP7Q/Dbw/My+cwJb/o/ZjWHtfHxpr77Nx\nOPr60Fh7n42tu1aMiDWbT38G/AV4S0RsHxH/AHyM8kv/TMrP53cCZwFfArYE/omytNW2mfmTLtsW\n0lrlMexLXx8aa++zcTj6+tBYe1+PGlegvMi6Io+cALVy0/I9youq1wMHRFlG405gHuX31H+hzGi3\nyWad6b5y0LwQmbkgy5ltF1FeWR/5hvkIcDnlVfa3AHcAh0XEjs1dfw78EdhiIl8hqb3PxuHo60Nj\n7X02dtp4R9OzV0QcSLno32mZ+fvMvJ/yCvbXgK0o6zcvU7Ufw9r7+tBYe5+Nw9HXh8ba+2xcehGx\netMzOyKmZeZvKL/YP59yltallDO9tsvM3YHtKWs3b005e3luZs7JzGsz87Yu2xamxmPYp74+NNbe\nZ+Nw9PWhsfa+HjXOz7IMxkWUi80/PjMfiLKMB1neUftxyhD69ZQh+Ucov59uAbwyM/93IhuXhWmL\n32U4NP/h1wBWz0euPPkKyj+GyLI491eBK0deXYiIq4HTgadRLnTxEeCwzLxp2PpsHI6+PjTW3mdj\nJ22rUX4xXYeyXMZ3KFe0/0/KmVBvo7yKfHez/4qZeVdEfIpypvMzgQn/AV7zMexDXx8aa++zcTj6\n+tBYe5+NnbStDlwN3AKck5kPN03fjohNKBf2+wrlF/5fN4PohyPiBMpZaOt32bOIzmqPYR/6+tBY\ne5+Nw9HXh8ba+3reeCTwAuC0iHhJZt4eEdMz86HMvDAijqW8AHtsZv6ouc9fJqJvMngxQCDKFSH/\nmzK0WA84BzgjM09obl8xyxUsiYgpObBOSvNN/GPgDTlB66fU3mfjcPT1obH2Phs7aVuVcgX6P1HW\ncXwisBnwALAT5a1HnwNeBHwgMz88cN+Nm6/rjZl5QddtozqrPYZ96OtDY+19Ng5HXx8aa++zsZO2\n1ZvHvwl4bWb+biH7rEF5S/PJmfn2ZttUYCPgG8C+mXl+122jGqo9hn3o60Nj7X02DkdfHxpr7+tx\n49lN439ExK7A4cB1wKuzDJtXzswHmvveAnwiM4+aqL7JMvRLZ0TEisC5lFdEjqBc4XgN4KCI+CJA\nZj7Y/EOIZj8iYkpEPKnZ9uMJ/D+AqvtsHI6+PjTW3mdjZ95PuajDazPznZk58gN8I+BHwHRgb8qF\nhT4YEZ+IiC0j4nmUK/1OA3KC2oD6j2HtfX1orL3PxuHo60Nj7X02dtI2nfLz9x5gB8rbk4lyQaZn\nRcRmEfF3mXkncAqwe0Ts1tx9feDfKe9CmtD1KGs+hn3o60Nj7X02DkdfHxpr7+t546OBD0TEpzLz\nFOCjwIbAf0fErIEh81MoZzD/fqL6JpNLZ5ThxGOBvTLzIoCIuJwyqNg7ImZk5iszc15ErAvsGhEX\nNvd5GbA25VWLYe2zcTj6+tBYe5+N3VifcvGHP0TEClnWwfpSRLwB2Bi4mLIO8x6UJTTeCfwbMJey\nlMZLM/O3E9gH9R/D2vv60Fh7n43D0deHxtr7bGxvOmXJjGcDT8jMmyJiZ+AYygWRpgK3RcTulAvz\nbgCcFBFHAvc3++yYCzkLumM1H8M+9PWhsfY+G4ejrw+NtfctD41vjYhVM3OviLgXOAT4RUQcDKwE\nbE55kfXSCW6cFEN/RnPjMZR/JBFlvbDfAp+gLNL9T9G8YkIZzO8G/A/lrdnPAl6Ymb8c8j4bh6Ov\nD42199nY3grAzMx8IMuaXCOvYv+RciX7P1KuXD8/Mw8Gnk55dXkXlsEV7AfUfAz70NeHxtr7bByO\nvj401t5nYwuZeR9wLPAH4J0R8WLgs8C3gF0p7ya6GbiAMnR+NeXn8kmUM7229Gdzb/r60Fh7n43D\n0deHxtr7+t74MeAVUc5sPhmYDfw/ysD5PUBQLoJ70zJoXOaGetAcEVOA24EHKReQApgf5Sy52ylX\nrfw8sF1EvCkzbwC2o1wZ+Z+Af57IfxjV3mfjcPT1obH2PhtbNa0YEU+KiG2irIH1ZWC1iPhGlDUh\n14qIjwDPadqOB55BefsumfmrzDwnM3+YmX/ssm2M3uqOYZ/6+tBYe5+Nw9HXh8ba+2xs1bRSRGwa\nETtExGMz8zLgZOCFwFuAbwLvy8zzM/MrwL6Ui/AeDdybmadl5nsz86vL4pfsGo9hn/r60Fh7n43D\n0deHxtr7lrPG44CXNo3XZebrgedS3oU74Y2TaeguBhgRj6JcbOKjA9v2pfzDZ5fMPD0iVgCmZDkN\n/wmUwcZ0yqsi84e5z8bh6OtDY+19NnbSNoPylqdVgU2BnwC3UdZffjPlggt3NC2vysyzm/tdAdyS\nmbMnqm1UZ7XHsA99fWisvc/G4ejrQ2PtfTZ20jYD+C4wE3gycA3wxcz8ZER8C3gF8KHMPGTU/Q4F\n9gSekZn3TFTfwPNVewz70NeHxtr7bByOvj401t43BI1TKWcvPxSjLlq4vBrGM5qfBnw4Igb/8XMa\ncCrwjYjYsfkmXRDl1PffUd7WtR3lLdjD3mfjcPT1obH2PhtbiIiVKBdXeIiyzvKGlCv6Po3y1qjZ\nlLWX30f5pXVwDa7fAatMVNtCVHkMe9TXh8ba+2wcjr4+NNbeZ2MLUS78dxrlWglvopyVdSNlLcq1\nmm3HUpbFGO1PlJ/p0yeqb5Qqj2GP+vrQWHufjcPR14fG2vuW98YXAP8AMAxDZhjOQfP9zcdDIuIY\ngMz8DWUdlfOA0yJidpYLTD3c7DuDcjXICX/1vQd9Ng5HXx8aa++zsZ3NgXWBYzPzoixviTqCsubj\npsBngNMy8wvAPRExIyJWaF5pXhm4PspVh6dMYOOIWo9hX/r60Fh7n43D0deHxtr7bGxnPcrP5i80\nP5t/DnwQeBKwQZa3Cx+QmRkR60TEtOZn8ZqUX7RvBv4ygX2Daj2GfenrQ2PtfTYOR18fGmvvs3E5\nM22yAybBdGA+ZVixV5Q1VN6RmT+KiA9TvnlOb16lGDlDbhfK27Pvss/GIenrQ2PtfTa28xjKVXzv\nhrJWc2beHxE/BDYBngCcFxHPB/agrAn5U8rVezcH3rEMXzGu9Rj2pa8PjbX32TgcfX1orL3Pxnam\nAGsC6wxsuxe4FfhgM1D+Q0TsTVkm45XAr5uvZzNguywXD1wWaj2GfenrQ2PtfTYOR18fGmvvs3E5\nM4xrNO9GeeX9lZQrHr8TOD4z397cvj7lCskfoLzi/gDlbV4vy2WwWHftfTYOR18fGmvvs7F1VwBX\nAcdl5gED24+jvDI8h3LF4ROAYyhrY00H7gM+npm/mKi2hbRWeQz70teHxtr7bByOvj401t5nY+uu\nNSnLWK0InAH8APgsZQB9GuUkpp2BecB7gddQrrPwS+BTmXndRLUtpLXKY9iXvj401t5n43D09aGx\n9j4blz/DeEbzisCvM/PHEfH7Ztt+EbGgeTXiRuDwiDgD2KC5/eos66vYZ+Ow9PWhsfY+G1vIzIyI\nI4BDI2IN4AZgI+C1wMaZ+YuI2JGyVvOBmbk7QERMzcx5E9m2EFUewx719aGx9j4bh6OvD42199nY\nQmbeHuVs5WOAvYA3Ag8DL83M6wGiXBDwLMr1E3Zptq2Qy+BCTaNUeQx71NeHxtr7bByOvj401t5n\n43JmGM9oXhVYIzNvaT5fG9gH2I+y3ti+9i2ajct/H9TfWHsf2NhR22uBgylvU7oH2Dsz5zS3bw1c\nDGydmT9oti3zK/nWfAz70Af1N9beBzYOQx/U31h7H9jYYd/9wH8CjwZens16lBGxMmUpq3Mz823N\nNn8296wP6m+svQ9sHIY+qL+x9j6wcXkzdBcDzMx7KYtxj3x+C3Ac5ZX5f4uIoyarrempug9s7ELt\nfVB/Y+19YGMXbZn5OcqVhJ8OPHNkyNxYC/hj82fkPsv81dOaj2HTU3Uf1N9Yex/Y2IXa+6D+xtr7\nwMaOjKyzvAEwPR+56BGU6yvcBvwvTM6QGeo/hrX3Qf2NtfeBjV2ovQ/qb6y9D2xc3gzdGc1jaV6N\neAtwEHB4Zr5vkpP+Ru19YGMXau+D+htr7wMbl1ZErAdsDVwPzAX2BZ4LvCAz/zyZbQtT4zEcVHsf\n1N9Yex/Y2IXa+6D+xtr7wMal7NkT+A/gEOBEYCawN7Aj5d1GN01e3cLVdgxHq70P6m+svQ9s7ELt\nfVB/Y+19YGNfDeMazQuVmbdExBeAB4FTJ7tntNr7wMYu1N4H9TfW3gc2tjAVOIqyPtbcZtsrahwy\nQ7XH8K9q74P6G2vvAxu7UHsf1N9Yex/YuJROpZzVfDDwLuAOyprNL6lxyAxVHsO/UXsf1N9Yex/Y\n2IXa+6D+xtr7wMa+8ozmUWJyLiQ1brX3gY1dqL0P6m+svQ9sXBoRsS7wFGA68JPswcUVajuGo9Xe\nB/U31t4HNnah9j6ov7H2PrBxSUXEFGATYFPgFuBnzduJq1bTMVyY2vug/sba+8DGLtTeB/U31t4H\nNvaNg2ZJkiRJkiRJUitDdzFASZIkSZIkSVK3HDRLkiRJkiRJklpx0CxJkiRJkiRJamXaZAdIkiRJ\nkiRJkiAiZgMnZuaMgW2rAO8HdgMeB1wPHJ6Z3xzY5/HA0cCLgKnAWcD+mfmngX3WafbZDpgPnAe8\na9Q+GwGfALYA7gZOB96Xmfcsrt0zmiVJkiRJkiRpkkXElsDXgSmjbvoc8Fbgk8BOwPeBb0TErs39\npgPnAJsBbwbeADwbODciVhjY5+xmn72bx9sKODMipjb7zAS+C6wF7A4cDLwK+Mp4+j2jWZIkSZIk\nSZImSUSsBLwD+BBwL7DiwG2PBfYE3piZX242fzciNgD2B04BXgg8E9g8M69q7nc7MAfYEriEMmB+\nBvCCzPxes89dwLnApsAVlLOhHw9snZk3NvusCHwhItbKzNsW9XV4RrMkSZIkSZIkTZ4dgQOBdwOf\nHnXbasDnKctcDEpgveZ/XwxsNTJkbjzYfFxp1Me7Bvb5c/NxzSXYZ0xTFixYsLh9JEmSJEmSJEkT\nICKeANybmXdExKGUtZVXW8T+U4GfA7dl5vNG3bYisDFluY1VgU0y86GImAb8CLgNeGOz+wnAhsBT\nM/O+ZumMqymD63dRhsvfpAytn52Zixwku3SGJEmSJEmSJE2SzPzdEt7lMOCpwOyF3HYusC3wAPDy\nzHyoeY6HI+LNwLeBXzf73g5sm5n3NfvMjYi9gW8Br2n2uYmylMZiz1aubtD88MPzFkybNnWyMyRJ\nkiRJkiSpC6Mv7rfUIuIA4CDg6Mw8ayG7fICyBMYbgLMj4qWZeW5EPJOyZvNVwBHAAsoaz+dGxDaZ\neUNE7ACcBZxJWa5jNcoFAb8bEVtn5p//79M9orpB89y593X+mLNmzeDWW+/u/HG7Unsf1N9Yex/Y\n2IXa+6D+xtr7wMYu1N4H9TfW3gf1N9beBzZ2ofY+qL+x9j6wsQu190H9jbX3Qf2NtfeBjV2ovQ/q\nb5yIvlmzZrR+jIiYAhwN7Ad8lrKe8/+Rmd9v9r8AeApwAOUs530oFxp8cWbe0+zzPeAaynD6tZTB\n8y+Af83Mec0+3wdupFys8AOLavRigJIkSZIkSZJUqYhYAfgaZcj80cx86+BSFhHxjIh41eB9mtt/\nAqzdbFoH+PnIkLnZ5wHgSmCjgX0uHxkyN/vcSrnw4Mg+Y3LQLEmSJEmSJEn1OpqyZvK7MvOghdy+\nFXBiRGwwsiEiVgK2AX7WbLoO2DgiVhvYZ0VgU+BXA/s8p7nY4Mg+a1LOjB7ZZ0zVLZ0hSZIkSZIk\nSYKI2IyybMX5wA8iYouBm+dl5uXAyZSlNM6IiEOAhyhnP68N7Nzs+0nK8hjnRMRRwHzgbcATgN2a\nfT4KXAR8KyI+B6wKHAjMAz69uFbPaJYkSZIkSZKkOs2mXEzwhcBlo/5cCJCZdwLbUdZX/gJl8Pwg\nsHVm/qzZ55fA8yjrNJ8EfIVyQcAtMvOKZp/Lmud5DHAGZS3oXwP/mJm/WVyoZzRLkiRJkiRJUgUy\n81Dg0LE+X8T9fsMjZyaPtc9PgR0Xs89FlIH0EvOMZkmSJEmSJElSKw6aJUmSJEmSJEmtOGiWJEmS\nJEmSJLXioFmSJEmSJEmS1IqDZkmSJEmSJElSKw6aJUmSJEmSJEmtOGiWJEmSJEmSJLXioFmSJEmS\nJEmS1IqDZkmSJEmSJElSKw6aJUmSJEmSJEmtOGiWJEmSJEmSJLXioFmSJEmSJEmS1IqDZkmSJEmS\nJElSK9OW9A4RMRs4MTNnLGa/pwPHAs8Bbgc+A3w8MxcsTagkSZIkSZIkqU5LNGiOiC2BrwNTFrPf\nY4HvAj8HdgU2Az4CzAOOWqpSSZIkSZIkSVKVxjVojoiVgHcAHwLuBVZczF3e2jz27My8DzineYwD\nI+LYzHyoRbMkSZIkSZIkqSLjXaN5R+BA4N3Ap8ex//bABc2QecQZwJrAs5aoUJIkSZIkSZJUtfEO\nmi8H1svMTwHjWWN5Q+CGUdtuHLhNkiRJkiRJkrScGNfSGZn5uyV83NWBu0dtu3vgNkmSJEmSJEnS\ncmKJLga4BKYw9pnP8xd1x5kzH8W0aVPH9STbbbfdEmYt2oUXXtjp49XeB/U3dt0H9Tf637k9j2E3\nJuI4jtesWTOW+XP24RjW/n0I9TfW3gf1N/p3pT2PYTdqb+zDf+cl4c/mhav9+xDqb6y9D+pv9O9K\nex7DbvShcbwm4+fe8mCiBs13AqP/i8wYuG1Mc+fet6ibJ9Stt44+CbsutfeBjV2ovQ/qb6y9D2xc\nlFmzZvTi+IxH7V9H7X1Qf2PtfWBjF2rvg/oba+8DGxfFn83LTu19UH9j7X1gYxdq74P6G2vvg+Xr\n596wDK7Hu0bzkroeWH/UtpHPc4KeU5IkSZIkSZI0CSZq0HwBsH1ErDqwbSfgz8DVE/SckiRJkiRJ\nkqRJ0Mlr/JklAAAgAElEQVTSGRGxATArM3/YbPos8DbgnIg4EtgEOBB4b2Y+2MVzSpIkSZIkSZLq\n0NUZzQcDl418kpm/B7anDLL/C3gzcFBmHtXR80mSJEmSJEmSKrHEZzRn5qHAoaO2vQ543ahtVwBb\nLXWZJEmSJEmSJKkXJmqNZkmSJEmSJEnSkHDQLEmSJEmSJElqxUGzJEmSJEmSJKkVB82SJEmSJEmS\npFYcNEuSJEmSJEmSWnHQLEmSJEmSJElqxUGzJEmSJEmSJKmVaZMdIEmSJEmSJEkTadddZ3f+mKec\ncmbnj9lnntEsSZIkSZIkSWrFQbMkSZIkSZIkqRUHzZIkSZIkSZKkVlyjWZK0THS9HpZrYUmSJEmS\nVA/PaJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIk\nteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLU\nioNmSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIr\nDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa04\naJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIkteKg\nWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLUioNm\nSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpol\nSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa1Mm+wA\nSZIkSZIkSRJExGzgxMycMbBtCvA+4N+AtYBLgbdl5rUD+zweOBp4ETAVOAvYPzP/NLDPOsDhwHbA\nKsCVwHsy86oxWvYEvgKsl5k3La7dM5olSZIkSZIkaZJFxJbA14Epo276APB+4CjglcAawAURsUZz\n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\nKRcE3GhJAiVJkiRJkiRJdRvvoPlmYKeRDRExHXgJcMEY97kO2HJwQ0Q8GXgM8KulKpUkSZIkSZIk\nVWmxS2dk5oKIOBw4LiLmApcC+wBrAccARMQGwKzMHDmL+YPAKRHxJeBk4HHAocBNwNc6/hokSZIk\nSZIkSZNoPGc0k5mfBd4N7AH8F/Bo4J8z88Zml4OBywb2PxXYGdgMOAf4GHAx8JzMrH8lb0mSJEmS\nJEnSuI3nYoAAZObRwNFj3PY64HWjtp0GnNaiTZIkSZIkSZLUA+M6o1mSJEmSJEmSpLE4aJYkSZIk\nSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIk\nSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIk\nSVIrDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIk\nSa04aJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIk\nteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLU\nioNmSZIkSZIkSVIrDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIr\nDpolSZIkSZIkSa04aJYkSZIkSZIkteKgWZIkSZIkSZLUioNmSZIkSZIkSVIrDpolSZIkSZIkSa04\naJYkSZIkSZIktTJtsgMkSZIkSZIkaVhFxFTgXcCbgccB/wscmJnfa25fBXg/sFtz+/XA4Zn5zYHH\n2Bn4r4U8/Nsy87hmn82BI4HnAnOBk4H3Z+b9XXwdntEsSZIkSZIkSZPn3cBHgROAnYBfAt+JiE2b\n2z8HvBX4ZHP794FvRMSuA4+xCXADZYg8+OdUgIjYEJgDzAReDewLvBQ4vasvwjOaJUmSJEmSJGny\n7AmclJkfBYiIC4Gtgb0i4oPN7W/MzC83+383IjYA9gdOabZtDFyZmT8c4zneBswHXpSZtzbP8xPg\n2oh4cWae0/aL8IxmSZIkSZIkSZo8KwF3jXySmfOAO4E1gdWAzwPnjbpPAusNfL4x8NNFPMeGwI9H\nhszN8yRwG7BDm/gRntEsSZIkSZIkSZPnM8AHIuJ04ArgdcDTgIMy80bgLYM7N2s67whc23w+A1gX\n2DQirqMMoK8B3jtwpvLNwLYRMSUzFzT3ezRlKY11u/giPKNZkiRJkiRJkibP54BLgO8Cd1DWYj44\nM88cY//DgKcCH28+fwYwhTJgfifwMuAm4KyI2K7Z50RgA+DTEfG4iHgS8DXgYWDVLr6IKQsWLOji\ncTrz8MPzFkybNnWyMyRJkiRJkiSpC1PGuiEipgAXAxsB76ecibw98B5gv8z8zKj9DwAOB47OzP2b\nbY8GtgQuycy7mm1TgZ8Af8zMFzTb9gaOogyWHwSOAZ4H3J6ZL2v9RdY2aL711rvHHbTrrrM7fe5T\nThnrRYKlU3sf1N/YdR/U3+h/5/Y8ht2ovbH2Pqi/0b8r7XkMu1F7Y+19UH+jf1e6UXtj7X1Qf6N/\nV9rzGHaj9sba+6D+Rv+udGO8jbNmzVjUoHlr4PvArpl56sD2wykX8Pu7zLynGUgfDewHfBbYZ2QJ\njEU89jHAHpm51sC26cCTgd9n5h0R8Svg4szcc1xfzCK4RrMkSZIkSZIkTY51mo8/HLX9EuAAYN2I\n+AXwVeA1wEcz86DBHSNiU2DzzPzSqMdYhXKxPyJiI+AZmflNylnTI2dCrwNc3cUX4hrNkiRJkiRJ\nkjQ5rms+bjVq+3Mo6yf/lnIm82uAd40eMjeeCXyxGTgDEBGrAC8GLhrY58SIeOzA/famLOtxDh3w\njGZJkiRJkiRJmgSZeWVEnA18NiLWpJxtvC3lbOZjgfWBdwDnAz+IiC0G7j4vMy8HTgUOBE6NiIOA\n+4F3A6sBH272PQv4A3BSRBwBbNzc9oXMzC6+Fs9oliRJkiRJkqTJ86/AfwAHUc4ufgXwdsqweDbl\nrOMXApeN+nMhQGbeA7wAuBz4FHAycB+wTWbe3OxzN7ADMBU4DdgHOIyyDnQnPKNZkiRJkiRJkiZJ\nZt4PvKv5M9qhzZ/FPcbNwKsWs8/Pge2WvHB8PKNZkiRJkiRJktSKg2ZJkiRJkiRJUisOmiVJkiRJ\nkiRJrTholiRJkiRJkiS14qBZkiRJkiRJktSKg2ZJkiRJkiRJUisOmiVJkiRJkiRJrTholiRJkiRJ\nkiS14qBZkiRJkiRJktSKg2ZJkiRJkiRJUisOmiVJkiRJkiRJrTholiRJkiRJkiS14qBZkiRJkiRJ\nktSKg2ZJkiRJkiRJUisOmiVJkiRJkiRJrTholiRJkiRJkiS14qBZkiRJkiRJktSKg2ZJkiRJkiRJ\nUisOmiVJkiRJkiRJrTholiRJkiRJkiS14qBZkiRJkiRJktSKg2ZJkiRJkiRJUisOmiVJkiRJkiRJ\nrTholiRJkiRJkiS14qBZkiRJkiRJktSKg2ZJkiRJkiRJUisOmiVJkiRJkiRJrTholiRJkiRJkiS1\n4qBZkiRJkiRJktSKg2ZJkiRJkiRJUisOmiVJkiRJkiRJrTholiRJkiRJkiS14qBZkiRJkiRJktSK\ng2ZJkiRJkiRJUisOmiVJkiRJkiRJrTholiRJkiRJkiS14qBZkiRJkiRJktSKg2ZJkiRJkiRJUisO\nmiVJkiRJkiRJrUwb744R8SbgPcATgauBd2bmZYvYfxZwNPBSykD7YmC/zPxlq2JJkiRJkiRJUlXG\ndUZzROwJfB74OrAzcAdwbkSsN8b+04HzgWcDbwJeB2wAnBMRK7bPliRJkiRJkiTVYrFnNEfEFOAw\n4PjMPKzZdj6QwH7A2xdyt9cCGwJPzczfNPe5CTgHeAZwZQftkiRJkiRJkqQKjGfpjCcDTwLOHNmQ\nmQ9FxNnADmPc5xXAd0aGzM19rgbWbtEqSZIkSZIkSarQeJbO2LD5eMOo7TcCG0TE1IXcZ2Pg2og4\nJCL+EBF/iYizI+Lv28RKkiRJkiRJkuoznkHz6s3Hu0dtv7u5/6oLuc8s4PWUM573AvYANgLOjohx\nX4BQkiRJkiRJklS/8Qx9pzQfF4xx+/yFbJsOrAjsmJl3AETEjcDlwL8Ap4z1ZDNnPopp0xZ2kvTE\nmzVrxqQ873jV3gc2dqH2Pqi/sfY+sLELtfdB/Y2190H9jbX3gY1dqL0P6m+svQ9s7ELtfVB/Y+19\nUH9j7X1gYxdq74P6G2vvAxv7aDyD5jubjzOAPw5snwHMy8x7FnKfe4D/GRkyA2TmFRFxB+VigGMO\nmufOvW8cSRPj1ltHn7Rdl9r7wMYu1N4H9TfW3gc2dqH2Pqi/sfY+qL+x9j6wsQu190H9jbX3gY1d\nqL0P6m+svQ/qb6y9D2zsQu19UH9j7X2wfDUOy0B6PEtnXN98XH/U9vWB68a4zw2UM5pHm8bYZ0ZL\nkiRJkiRJknpovIPmm4GdRjZExHTgJcAFY9znPGCriFh74D7PB1YDfrDUtZIkSZIkSZKk6ix26YzM\n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\navfW2sbtoV5YlKq69PB7kscxVXWJqnrkouuA7UFVrV10DTB1VXWpJBnaiJNbZ4aMbs3wb21Ytq+g\neWhQvifJP1XV1RdcDkzeFHdEm1NVO1XVVRddB3DhVdU1kpya5AFTDJurao8k+1TVjnPTJ9MQrqqr\npN/w4+nC5ou27WW/PFXDNub1VXVwa21DVe1YVbsuuq45j0/yN1X1jEUXAksnZKa47amqGyd5c1Wt\nX3QtbFuz37+pniScqqq6TJJDquqOSdJaO2eYPol2YlVdPslTk/zuomthOrarlby1tiHJUUnWJnnL\ncHA7ObMbz+3hzM6Ua1sytRo3V8/Uakz6jqiqdq6qKyTTrLGqLpnk35Lco6ouvuh6lmwPjaDZz3OK\nn+2SqW8Ht3TwNZV6p15fkm8m+Zf0uyPfp6p2WXA9826Z5E1JbllVl6yqA5PeK2ShVc1orX0zyYeT\n/GmSw6rqylMMm+e2OZPbRk6xpllVtWbmAPGVVXWXRde0OVN+H1trP0/SkhxTVY9O8o9J7jSxdeVt\nSV6X5IFV9dxFF7O9mvL3MNku9s1J+vFzVe2U5L1VdetF1zPnqkn+PMnRVXW5RRezOVP/Hm4vhmPS\nS1TV5Yfv5KTWk4lbm76eHF5Vd6yqD1fV1SbUjv15kj9J8uqqukGSv6uq31twTZs1xRNuF1Xb3Yaz\ntXZikr9Isj69R8NeCy7pPKpq3bDx3KGqfifJXsm0DmiT8wQ/O06ttiVTrXH4jDdW1dqqumxVXWlp\n2qJr24L3pIcsU/werktyRJKz0kOWXy22om5mPd6pqvapqusNZ5MnY+57uCbJpOpLNu3Ml753U/v+\nJee+j0snZO5aVQdW1T2SadQ79fqSpLV2dmvt7kmOT3J0knstXeI3ESemB+HHJ/nvJHtX1c6LLWmT\nmfXkwUnemeTeSR4/tbB5Zpuz1HaczInB5DfaX1VV11t0TbOq6mJL62xVHZpk3yTnDPvByZh5H3es\nqutX1R8MvZWm5Kgkb0jyN0muluT4qWwPhzbraUmekeR9SQ6oqiMWXNZ5nN+B9sS2Nxuqal1V7Ta1\ncKCq1s6cNPqzqnpIVd09mc6+ec71kvx+kuskkwpP35/kz5LcOckrpxY2z20PrzpsD3ea0nZ7auvG\nlgzfuVcneXtV7TCV9eQCtoeTWE9aaz9MD3Jvlt5OXJ/kzGQa2+zW2k+T/GX6/vjTSa6e5BuLrGlz\n5o6p/ryqHl1V1110XRdVazZunMQ6foHmduj3S3LzJI9I8qEkD2+t/fci60s21Vj9Er53JLlWkt9J\nv6T4RUk+3Fo7fZE1Juf2IH1Jkmsm2T3JPyR5V2vt3xZa2Iyp1jj3Gb8uvcG2W5JvJ3likk8PvW0m\no6oemOSQJAe11j656HqWDL0r3pxkzyQfaK1N4kBs7jP+xyTXTnLJ9Fpf0lr7r4UWmPPUeMkkr0iv\n8X+THDIc4C7csDM/u3rv1kcnuUqSc9LDgf9qrS38pMIQ/GwYPutPJNkhyR5Jfp0eSD4pyb+21n6p\nvi3WuPQ575jk95K8N/1zfnqSd7bWfrao2mZV1bXSe0GeneTg1trrFlzSuebaN7dOX0cunX6C8IWt\nte9U7wm7sAbb3Hfxlenb7UunHzQev+jtztx2+/j0XnJXSA/tT2itnbXI+mZV1ROT3CnJh1prz1t0\nPbPmPucPJbls+v7lHUkOba19d6EFzqiqdyfZO/0k68GttVcttqJN79/w70cmuW36CYUdkhzZWjty\nkfUlv7FvPih9Xf5Gki+01j44zDOl7c2b048FPpPkTUOHo4WafX+q6h3px6S7pQdAz2yt/c/8fFNQ\nVS9Nco8k122t/d+i61kyBH13S/L6JB9J8tAhWFuoue/h+9PbX1dP8qX049JnLfp9nFmfd06/IuoK\nSb6V5OThSqnJGALRI5Lsl+RPWmvfnN1mLqim2e3hI9Kzm28k+XJr7Z2LqmvecALz11X1q/T9yafS\n98knDY8vfFtT/arkr6bnNv+e5F6tta8vsqZZc+vzv6Z3lrhq+tWYL170unxRtN0EzUuq6tj0M7L/\nmuTy6Tv3U5PsP5GweeckJyX5cZJj0zdWBye5Q3pw+vRFBizDhvTTSX6WvhHYMcnt0nuUPra19v5F\n1bZk6jVWHx/wU0nOSG9obExvuF0nyaFJ3rLoYGpu2rXTe/S9orX2rCnsjJZU1ZuT3DfJfybZt7X2\nrUXVN3eAuPQd/EmSl6YfaB+WHqK9oLX2n6td37whZP5MesD85fTg8U2ttW8vtLBsavAMNZ6cvi5v\nHH5ulP6eHtNa+8oCy0xybq/649NPJjwqyY+Ghz6f5LQk92ytLeys/NTrS5Kh0faZJN9ND6Yumb5/\nfkySt0/h5NsQ4D4yyaWS/FGS+7XW/n6xVW0ybHP+K/0z3THJTklumORVSY6awrZxODn42fTt4hfS\n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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xc84eef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "msno.bar(data, labels=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\ntt9NeT34giTPb5rmninb8hemvMY6fpr7x9PvyfdSnnfjlKtGjpj+e1buT7JHCuqh5pr+nRvdF53e\n+Tm+P2WsRPff+u09WZw3ZWzYz676+y9L2X6t9/z6cdbZR/bwf3LlGORpKa8bPpRyXHZ6U67UfGWS\n502L8wNTFvJ8IcktKWM1+rKzY6NJkiuapjmkLVcur4wM2/E6v8fifG56fPoT0wI6KT+7y1NeM/+H\nlGO0Z6UcG/1Mpp3P6uO1njJ2v19PTDkh+Z0klzVlBfjK1/7ntm1fnnKcdlTbti/Y08X59Ot8N+Uq\n89XbiktSTio8sWmaC6aPOznlKozfTRkxc99Vf8dn+uwEYCOsPJ+hpmnelbLq67UpZdjlKSv6Xt6W\nm2WtPO6FKTuurSk7+l7Ht0wLrY+nrEr7Qdu2v7nqY3dNOWj60yS/1bbtB5oyw/LVKQeefa4k3Uiu\n05M8oW3bv9nJ5/dRim001zFt21663uf3uDN/XcrZ40emnPk+NmXn+e2UHfdbU17gfzTJGW25e/tM\nNGWO7MeTHNe27V9P3zeX8n/h91JGkPxpyovE7yS5crqT3KM78FV5tqaUlT9O8pW2bZ++6mOvTznY\nfkWSd7TTkUtNmRt38zRXX6uwvpDyYucuSd7Ttu2JTbkk8S0p36t/35aVbfdP8rYkv7+yjegr0/Tv\n3pLygua4lOfR+9q2/ej0Y+emrG54SFuupLl/ymq7HyZp+/w5rso3uOe+bdhuZfv1TFc9tW17ZXPr\nirWfSxlr9oiUkuXMWWUacq4hZhvqa4pVGe5oW/GOlJE3D0xZrXVxW07+9bUvekXKwfWfJbmobdtP\nTd//5pSS4LC23PT136WMJvleynb1hp39nXso19aUsvK/Z7qSuymrI/8q5YqGZ7dt+5XpY49KuWry\nzLacDOzVEPffTRnH+KGUlY/3SLla7EfTjx2QsjL5TSmvgd4zLQX+KmV84x4/CbJOvjvaThyRMjJi\naNvWWrnOS/m/dmq76n4CTVmB/oqUK8T+oC2jN++TclLr9/r8WU7//304ZcHJG6f5npXyvPrrtm2f\nNn3cypWBP5WyLXvOdBv29JTtzOPaPXhD6AHnGuS+aJrr0ynbsNev8/z6k5QV6C9r2/ay6bbidSnb\nir5fT6wcg2xNsti27Uun739Cyr7xl9uy0vshKauIn9/eOuKszyvsbu/YaEvK9vYrTdM8PmWEyxvb\ncv+B3kyPiz6Usl8+tW3bd0/fd1mSb7Zt+9SmjDd7ccpJ5iR5WLuHx/7sJNvtfb+SZKEtVzOvXO22\nenxSn8eS3W3Fd1OO/9+U5INt2z51+rjTkjw95ZjtxLafe7rALnPmZrbel3Km9AUpNyZ5UZJfTTnD\nfHSSTHeQj0i5vOyRfRfnyY5i5tSU1e6Hdc5I/p+UF4SfT5kHl7Ztv9S27XFtzytJN5jrmiS/nOzY\nie04o9uWFbq9rMDdYK6H7SzXns60ylLKyoTPpxyMPDnl+faQlEvvTki5vPjhKWehZ2mcchO631z9\nzunO+sqUEuN/t237kbasSF+5IVsvhev05/D6lJ/j/92svUHJy1NW+p2S5D81TfPz0/f/aFWuvs48\n/sb01wVJjm2a5o1tWYm1sgL9C025JPxvU4qef0n6fbGT7Pg5/VHKAdExSf68aZoPNmXFxQXTHE+d\nfm++2LbtVW3b/lPfP8dVljKw575t2G755+nvvz79Wj+elilfT/k/eZckJzXlpoqzyjTkXIPLNtTX\nFKss5fa3Fb+fcpn6+9u2fe9Krh63Yf81Zc7nM5L8RdM05zflHhbnpdxs7PenB7ifa9v20rZtP953\ncZ7s+Dm+KmXf8/ymzHC+LOVk9+FJ3tE0zX2n+85Pp8z3PrnvXKuyDWr/3bbtR1JWlP96ylzlg1Z9\n7Acpz7V/TLIwfT59OaXA6L04n7qj7cRdk5w8wG1rrVx/nfLc/89NucdApl/3wymF6wOTvKEpN3n8\nl5SVm73+LKf//45OuZLhZSkF/jtTyrnfaprmr6aPu2W6zfhu27b/adX36uIkD92TBfXAcw1yXzTN\ntXK1yvOm2/uVj3045Xl/WJLTmqb5D23bfrlt29+b0T5y5RjkwpSb9/759P3fSxnF8/ymaZ6aUnbe\nnOmNJafHIH1eYbezY6MXpKyA/29NWYH+oZQT4y/vMUuSHcdFJ6dcOX3e9Hl+eMoJ+Qc1TfMHbdt+\ntC0nbU5JWWnd5wr91W7v+5WUFfu/0C3Op/+uPo8lu9uKn8qt24onNGtXoL8/5Th3j00OgDvLyvMZ\nm65M+buUGyH80fQM3DtSXmjcNP318ylnUD8342wLKXPLXprkv7Rte9Oqj30yyf9s2/aEWWbaYK5P\nt237n+XaUXIdk3Jw+49JLm+nVzU0TfNbSd6QMqvui9P39boaeJ18z04ZS/THbdu+YdX7H52yMnjU\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xc7a5320>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "msno.matrix(data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Missing value findings\n",
    "From above, we can see that:\n",
    "\n",
    "    -Dosage has a significant number of missing values\n",
    "    - Line item Insurance and shipping mode have similarly moderate levels of missing values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "####  Dosage"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Test kit                37\n",
       "Test kit - Ancillary     9\n",
       "Name: dosage_form, dtype: int64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#### Fix the missing values for the dosage feature\n",
    "# Dosage has a lot of missing values\n",
    "dosage_nulls = dobject[dobject.dosage.isnull()]\n",
    "# dosage_nulls.to_excel(\"Dosage_Nulls.xlsx\")\n",
    "# Excel investigation: Corelated with country, item_desc (Mostly HIV rapid test kits), molecule test\n",
    "#, vendor_terms (EXnW??), fulfill_via (by air), Brand, dosage_form, units?# pk_price, factory\n",
    "dosage_lkup = dobject[[ 'itm_desc', 'molecule_test', 'brand', 'dosage_form', 'dosage' ]].groupby(\n",
    "[ 'itm_desc', 'molecule_test', 'brand','dosage_form']).max()\n",
    "# Realize they are all test kits, \n",
    "dosage_lkup[dosage_lkup.dosage.isnull()].reset_index().dosage_form.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def data_fill_na(data, column, fillvalue):\n",
    "    print(\"Before: \\n:\", data.isnull().sum()[data.isnull().sum()>0])\n",
    "    # So use NA-TestKit/Ancillary as dosage value\n",
    "    data[column].fillna(value=fillvalue, inplace=True)\n",
    "    # Check the nulls once again, these should be mainly from the date columns\n",
    "    print(\"---\\nAfter: \\n:\", data.isnull().sum()[data.isnull().sum()>0])\n",
    "    return data    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Before: \n",
      ": ship_mode     360\n",
      "dosage       1736\n",
      "dtype: int64\n",
      "---\n",
      "After: \n",
      ": ship_mode    360\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "dobject = data_fill_na(dobject, 'dosage', 'TestKit/Ancillary')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#### Fix the missing values for the dosage feature\n",
    "# Dosage has a lot of missing values\n",
    "def describe_nulls(data, column):\n",
    "    nulls = data[data[column].isnull()]\n",
    "    #nulls.to_excel(column+\"_nulls.xlsx\")\n",
    "    for col in nulls:\n",
    "        #print('\\n',col,\"nulls summary: \\nCount: {} \\nUnique: {} \\nTop Freq: {}\".format(col.count()\n",
    "        #      ,len(col.unique()), col.values_count()[:3]))\n",
    "        print('\\n-------\\n',nulls[col].describe())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Shipping Mode"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "-------\n",
      " count            360\n",
      "unique            15\n",
      "top       110-ZM-T01\n",
      "freq              99\n",
      "Name: proj_code, dtype: object\n",
      "\n",
      "-------\n",
      " count                360\n",
      "unique                 1\n",
      "top       Pre-PQ Process\n",
      "freq                 360\n",
      "Name: pq_no, dtype: object\n",
      "\n",
      "-------\n",
      " count            360\n",
      "unique           220\n",
      "top       SCMS-16600\n",
      "freq              18\n",
      "Name: po_no, dtype: object\n",
      "\n",
      "-------\n",
      " count          360\n",
      "unique         226\n",
      "top       ASN-1520\n",
      "freq            16\n",
      "Name: ship_no, dtype: object\n",
      "\n",
      "-------\n",
      " count               360\n",
      "unique               12\n",
      "top       Côte d'Ivoire\n",
      "freq                113\n",
      "Name: country, dtype: object\n",
      "\n",
      "-------\n",
      " count          360\n",
      "unique           1\n",
      "top       PMO - US\n",
      "freq           360\n",
      "Name: mngr, dtype: object\n",
      "\n",
      "-------\n",
      " count          360\n",
      "unique           2\n",
      "top       From RDC\n",
      "freq           312\n",
      "Name: fulfill_via, dtype: object\n",
      "\n",
      "-------\n",
      " count                360\n",
      "unique                 5\n",
      "top       N/A - From RDC\n",
      "freq                 312\n",
      "Name: vendor_terms, dtype: object\n",
      "\n",
      "-------\n",
      " count     0\n",
      "unique    0\n",
      "Name: ship_mode, dtype: int64\n",
      "\n",
      "-------\n",
      " count                360\n",
      "unique                 1\n",
      "top       Pre-PQ Process\n",
      "freq                 360\n",
      "Name: pq_date, dtype: object\n",
      "\n",
      "-------\n",
      " count                360\n",
      "unique                 8\n",
      "top       N/A - From RDC\n",
      "freq                 312\n",
      "Name: po_date, dtype: object\n",
      "\n",
      "-------\n",
      " count     360\n",
      "unique      3\n",
      "top       ARV\n",
      "freq      309\n",
      "Name: prod_grp, dtype: object\n",
      "\n",
      "-------\n",
      " count       360\n",
      "unique        5\n",
      "top       Adult\n",
      "freq        239\n",
      "Name: sub_class, dtype: object\n",
      "\n",
      "-------\n",
      " count               360\n",
      "unique                7\n",
      "top       SCMS from RDC\n",
      "freq                312\n",
      "Name: vendor, dtype: object\n",
      "\n",
      "-------\n",
      " count                                   360\n",
      "unique                                   68\n",
      "top       Efavirenz 600mg, tablets, 30 Tabs\n",
      "freq                                     42\n",
      "Name: itm_desc, dtype: object\n",
      "\n",
      "-------\n",
      " count           360\n",
      "unique           35\n",
      "top       Efavirenz\n",
      "freq             62\n",
      "Name: molecule_test, dtype: object\n",
      "\n",
      "-------\n",
      " count         360\n",
      "unique         28\n",
      "top       Generic\n",
      "freq          213\n",
      "Name: brand, dtype: object\n",
      "\n",
      "-------\n",
      " count                   360\n",
      "unique                   31\n",
      "top       TestKit/Ancillary\n",
      "freq                     51\n",
      "Name: dosage, dtype: object\n",
      "\n",
      "-------\n",
      " count        360\n",
      "unique        11\n",
      "top       Tablet\n",
      "freq         126\n",
      "Name: dosage_form, dtype: object\n",
      "\n",
      "-------\n",
      " count                           360\n",
      "unique                           36\n",
      "top       Aurobindo Unit III, India\n",
      "freq                            141\n",
      "Name: factory, dtype: object\n",
      "\n",
      "-------\n",
      " count     360\n",
      "unique      2\n",
      "top       Yes\n",
      "freq      226\n",
      "Name: first_line, dtype: object\n",
      "\n",
      "-------\n",
      " count                            360\n",
      "unique                           259\n",
      "top       Weight Captured Separately\n",
      "freq                              47\n",
      "Name: weight, dtype: object\n",
      "\n",
      "-------\n",
      " count                                    360\n",
      "unique                                   261\n",
      "top       Freight Included in Commodity Cost\n",
      "freq                                      49\n",
      "Name: freight_cost, dtype: object\n"
     ]
    }
   ],
   "source": [
    "describe_nulls(dobject, 'ship_mode')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1323, 3) Index(['country', 'itm_desc', 'ship_mode'], dtype='object')\n",
      "(10324, 24) Index(['proj_code', 'pq_no', 'po_no', 'ship_no', 'country', 'mngr',\n",
      "       'fulfill_via', 'vendor_terms', 'ship_mode', 'pq_date', 'po_date',\n",
      "       'prod_grp', 'sub_class', 'vendor', 'itm_desc', 'molecule_test', 'brand',\n",
      "       'dosage', 'dosage_form', 'factory', 'first_line', 'weight',\n",
      "       'freight_cost', 'ship_mode_y'],\n",
      "      dtype='object')\n",
      "(10324, 23)\n"
     ]
    }
   ],
   "source": [
    "data, column, groupby = [dobject.copy(), 'ship_mode',['country', 'itm_desc', 'ship_mode']]\n",
    "# make cx\n",
    "cx=data.groupby(groupby).agg('count').reset_index()[['country', 'itm_desc', 'ship_mode']]\n",
    "print(cx.shape, cx.columns)\n",
    "cx = cx.groupby(['country', 'itm_desc']).min().reset_index()\n",
    "# make cy\n",
    "cy = pd.merge(data, cx, how='left', left_on=['country', 'itm_desc']\n",
    "         , right_on=['country', 'itm_desc'], suffixes=('','_y'))\n",
    "print(cy.shape, cy.columns)\n",
    "# assign\n",
    "cy['ship_mode'] = cy.ship_mode.where(cy.ship_mode.notnull(), cy.ship_mode_y)\n",
    "still_null= cy.ship_mode.isnull().index # find remiaining nulls\n",
    "a = data.ship_mode.value_counts()/data.ship_mode.value_counts().sum() # values distributed randomness \n",
    "for j in still_null:\n",
    "    cy.loc[j,'ship_mode'] = np.random.choice([i for i in a.index], p=[v for v in a])\n",
    "cy.ship_mode.isnull().sum()\n",
    "# Drop\n",
    "cy.drop('ship_mode_y', axis=1, inplace=True)\n",
    "print(cy.shape)\n",
    "dobject= cy.copy()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Line Item Insurance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ln_itm_val        0\n",
       "pk_price          0\n",
       "unit_price        0\n",
       "line_itm_ins    287\n",
       "dtype: int64"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dfloat.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0024500000000000012"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "yr = pd.Series([str(x).split(\"-\")[0] for x in ddate.del_date_scheduled], index = ddate.del_date_scheduled.index)\n",
    "d_ins = dobject[dfloat.line_itm_ins.isnull()]\n",
    "#d_ins.to_excel('line_insurance_missing_values.xlsx')\n",
    "# Most missing values driven by 2007 items, so use lower end of 2007 insurance\n",
    "# Use Median Value\n",
    "q1 = np.percentile(dfloat[yr == '2007'].dropna()['line_itm_ins'], 0.5)\n",
    "dfloat.fillna(value=q1, inplace=True)\n",
    "q1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Investigate Misclassified/Misplaced Features\n",
    "#### e.g. dates cast as objects etc."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "#### Purchase Quotation and Purchase Order Dates "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Pull out the meanings and definitions:**\n",
    "\n",
    "- **\"Pre-PQ Process\"** indicates deliveries that occurred before the PQ process was put in place in mid-2009.  \n",
    "\n",
    "- **\"Date Not Captured\"** where date was not captured.\n",
    "\n",
    "- Not applicable for from RDC deliveries (**\"NA - From RDC\"**).  RDC means Regional Delivery Center\n",
    "\n",
    "- **\"Date Not Captured\"** where date was not captured.\n",
    "\n",
    "Given the information above, let's try the following mapping\n",
    "\n",
    "- Pre-PQ Process : 12-31-2008, OR Fill in these based on other time columns?\n",
    "- Date Not Captured: NaT\n",
    "- NA - From RDC : A month before scheduled delivery, if available? OR Fill in these based on other time columns?\n",
    "- Date Not Captured: NaT\n",
    "\n",
    "First try this though...\n",
    "- Pre-PQ Process : 1-1-1970 or pd.to_datetime(0)\n",
    "- Date Not Captured: NaT\n",
    "- NA - From RDC : 1-1-1970 or pd.to_datetime(0)\n",
    "- Date Not Captured: NaT\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pq_date</th>\n",
       "      <th>po_date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>10324</td>\n",
       "      <td>10324</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unique</th>\n",
       "      <td>765</td>\n",
       "      <td>897</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>top</th>\n",
       "      <td>Pre-PQ Process</td>\n",
       "      <td>N/A - From RDC</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>freq</th>\n",
       "      <td>2476</td>\n",
       "      <td>5404</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               pq_date         po_date\n",
       "count            10324           10324\n",
       "unique             765             897\n",
       "top     Pre-PQ Process  N/A - From RDC\n",
       "freq              2476            5404"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Check columns of interest\n",
    "dobject[['pq_date', 'po_date']].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 10324 entries, 0 to 10323\n",
      "Data columns (total 23 columns):\n",
      "proj_code        10324 non-null object\n",
      "pq_no            10324 non-null object\n",
      "po_no            10324 non-null object\n",
      "ship_no          10324 non-null object\n",
      "country          10324 non-null object\n",
      "mngr             10324 non-null object\n",
      "fulfill_via      10324 non-null object\n",
      "vendor_terms     10324 non-null object\n",
      "ship_mode        10324 non-null object\n",
      "pq_date          10324 non-null object\n",
      "po_date          10324 non-null object\n",
      "prod_grp         10324 non-null object\n",
      "sub_class        10324 non-null object\n",
      "vendor           10324 non-null object\n",
      "itm_desc         10324 non-null object\n",
      "molecule_test    10324 non-null object\n",
      "brand            10324 non-null object\n",
      "dosage           10324 non-null object\n",
      "dosage_form      10324 non-null object\n",
      "factory          10324 non-null object\n",
      "first_line       10324 non-null object\n",
      "weight           10324 non-null object\n",
      "freight_cost     10324 non-null object\n",
      "dtypes: object(23)\n",
      "memory usage: 1.9+ MB\n"
     ]
    }
   ],
   "source": [
    "dobject.info() # Notice pq_date and po_date should be datetime type but currently classified as object columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-----\n",
      "Non-datetime entries for po_date: ['Date Not Captured', 'N/A - From RDC']\n",
      "-----\n",
      "Non-datetime entries for pq_date: ['Pre-PQ Process', 'Date Not Captured']\n"
     ]
    }
   ],
   "source": [
    "# We see that pq_date and po_date have some non-date values\n",
    "for c  in ['po_date', 'pq_date']:\n",
    "    print(\"-----\\nNon-datetime entries for {}: {}\".format(c,\n",
    "        [x for x in dobject[c].unique() if type(x) == str]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x1a0b4a58>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n6VStdHLuNrOt3f1XwI7AzcDtwElmNg4YC6xHuinBLGCn4vUdgVtyFC0iIlJnZqOBC4B1SG3QicCf\n0E1yRESWW63cQvpI4AQzuw0YA1zh7k8AZ5M6MTcBx7j7QuBcYH0zmwkcCJyQp2wREZEeewJPFTe5\neTfwTXSTHBGR5VpTR3Lc/WHg7cXvDwBT+njPNGBar2ELgN3arlJERKR/lwNXFL93kY7S9L5JzruA\nFylukgMsMrPGm+Sc1vDeY4eobhERGSStnK4mIiIShrs/A2Bm40mdnanA6YN9kxwREYlLnRwREel4\nZvZa4CrgW+7+PTM7reHl7DfJ0V1AY+REqiVaTqRaouVEqqWqORFqUSdHREQ6mpm9ErgOOMzdbywG\nD+pNcnQX0OHPiVRLtJxItUTLiVRLVXOi3AVUnRwREel0RwMTgWPNrH49zRHA2WY2BrifdJOcF82s\nfpOcERQ3yTGzc4GLipvkPA/sMfSTICIiOamTIyIiHc3djyB1anrTTXJERJZTrdxCWkREREREJCx1\nckREREREpFLUyRERERERkUpRJ0dERERERCpFnRwREREREakUdXJERERERKRS1MkREREREZFKUSdH\nREREREQqRZ0cERERERGpFHVyRERERESkUtTJERERERGRSlEnR0REREREKkWdHBERERERqRR1ckRE\nREREpFLUyRERERERkUpRJ0dERERERCpFnRwREREREakUdXJERERERKRSRrU6opndBcwr/vwbcBJw\nIdAN3Acc6u5LzOwA4CBgMXCiu1/dVsUiIiIiIiLL0FInx8zGAV3uvnXDsJ8BU939V2Z2HrCLmd0G\nHA5sAowDZprZ9e6+qP3SRUREREREXq7VIzkbAiua2XVFxtHAxsCM4vXpwLuAF4FZRadmkZk9CGwA\n/K6tqkVERERERPrRaidnAXA6cD7wJlKnpsvdu4vX5wMTgJWBuQ3j1YeLiIhkY2abA6e6+9Zm9kaa\nPH3azFYALgXWILVRe7v77GGZCBERyabVTs4DwINFp+YBM3uKdCSnbjzwNOmanfF9DF+miRNXZNSo\nkaUKmjRp/MBvyjje8pATqZZoOZFqiZYTqZZoOZFqyZkz3Mzsc8BewLPFoDNp8vRp4BDgXnc/3sx2\nB6YCRwz5RIiISFatdnL2Bd4KfMLM1iIdsbnOzLZ2918BOwI3A7cDJxXX8IwF1iPtVVumOXMWlC5o\n9uz5pceZNGl8S+MtDzmRaomWE6mWaDmRaomWE6mWZnM6qBP0V+ADwCXF32VOn94SOK3hvccOVdEi\nIjJ4Wu3kfBe40Mxmkk4H2Bd4EphmZmOA+4Er3P1FMzsbuIV0u+pj3H1hhrpFREQAcPcrzWydhkFl\nTp9uHN70KdU64yBGTqRaouVEqiVaTqRaqpoToZaWOjnu/jywRx8vTenjvdOAaa38PyIiIi1Y0vD7\nQKdPNw5v6pRq0BkHEXIi1RItJ1It0XIi1VLVnChnHOhhoCIiUjV3m9nWxe87ks4muB2YbGbjzGwC\nS0+fngXs1Ou9IiLS4dTJERGRqjkSOKG42cAY0unTTwD106dvYunp0+cC6xenXx8InDBMNYuISEat\nXpMjIiIShrs/DLy9+P0Bmjx92t0XALsNQYkiIjKEdCRHREREREQqRZ0cERERERGpFHVyRERERESk\nUtTJERERERGRSlEnR0REREREKkWdHBERERERqRR1ckREREREpFLUyRERERERkUpRJ0dERERERCpF\nnRwREREREakUdXJERERERKRSRg13AUNp36/cNOB7LvjCtkOWIyIiIiIi+elIjoiIiIiIVMpydSQn\nEh0NEhEREREZHDqSIyIiIiIilaIjOSIiIkHoKL+ISB7q5HQ4NYgiIiIiIi+l09VERERERKRSdCRH\ngFi319bRKRERERFphzo5UlmROm4iIiIiMnTUyREZIpGOcqnjJiIiIlU26J0cMxsBfAvYEFgE7O/u\nDw72/ysigy9SpytSLdFy1KkdmNoqEZFqGYojOe8Hxrn7/5jZ24EzgF2G4P8VERFpVqXaqqHqZHda\nhz9njojENhSdnC2BawDc/TdmtskQ/J8iIiJlqK2SUtQBbD0nUi3RciLVEi2n7M6Hru7u7lIjlGVm\n5wNXuvv04u9HgXXdffGg/sciIiJNUlslIlItQ/GcnHnA+Mb/U42GiIgEo7ZKRKRChqKTMwvYCaA4\nz/neIfg/RUREylBbJSJSIUNxTc5VwPZmdivQBewzBP+niIhIGWqrREQqZNCvyRERERERERlKQ3G6\nmoiIiIiIyJBRJ0dERERERCpFnRwREREREamUobjxQChmthowAXja3f9ThVqqmBOplmg5kWqJlhOp\nlmg5kbZ9VWRmBwIXuPtiM5sMrO/u5w1zTWHWmyrmRKolWk6kWqqaE6mWiDnQQTceMLMNgJWAJcDJ\n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\nH8LMHqO6s7Cf6o7JTVTL3L3k7ocbzhLleZBqZYzTVHdKlgKrgRfc/f0m8wieGxmPUhY1j1INq+WJ\nalOy8ESML7VHpm5K9ChlUfMoZQn2KPXpMlkU8/TSmu/kAKeAlVSbtY1RPes3/bOfVRueBu519wvT\nL5jZQeBwfTSZJcqzF1jr7hPTL5jZMqrHJeZcoEF51M6Nkkcpi5pHqYbV8kS1KVl4IsYX0KqbEj1K\nWdQ8SlkiPUp9ulIWxTxd2jTJWQt8BGzw+e9GDfBX7wAE4O4TZnZpCFmiPIupluzr5Xf6/9JXRB61\nc6PkUcqi5lGqYbU8UW1KFp6I8QW06qZEj1IWNY9SlkiPUp+ulEUxT5fWLDzg7r8Bu4HbBlTNtLTe\nnM9lVJbANh0AvjSzN83sVTPbB5ygemSi0Txq50bJo5RF0CNTw2p5AtuULDwDjy+gVTclepSyqHmU\nskR6EOrTxbIo5unSmu/kRGFm54CjV708Bqx39xuGECkEM1sJ3E71LOUEcMLdzw03VZLMHbUaVsuT\n6FPq+JIkJaDUpytlUcwzTZseV8PMHqbaKXcZ1eoPXwDv+ZXL5/0fj8/w+ltDyBLmodqEaSOXV8a4\nxsyGkkft3Ch5lLIIemRqWC1PYJuShSVkfAGtuinRo5RFzaOUJdKDUJ8ulkUxD9CiSU798dkiqs2K\nJqlmm/cD91GtXjMn3P2YSpYSPUpZ1DxKWdQ8SlnUPFFZkoUnYnwBrbop0aOURc2jlKVUj1IWRc8V\nTE1NteLodDrHZnj9+KhmKdGjlEXNo5RFzaOURc2j1Pfl0cyhVDclepSyqHmUspTqUcqi6Ok9WrPw\nALDIzO7ufcHM7gEujnCWEj1KWdQ8SlnUPEpZ1DxKfV/SDEp1U6JHKYuaRylLqR6lLIqeLq15XA3Y\nBoyb2dtUX+S8BHwFPDXCWUr0KGVR8yhlUfMoZVHzRGVJRodt6NRNiR6lLGoepSylepSyKHouM9+P\ngEo5Op3OkmFniM5Sokcpi5pHKYuaRymLmkep78ujmUOpbkr0KGVR8yhlKdWjlEXF05rH1czsITP7\nwczOmNkTPf90ZFSzlOhRyqLmUcqi5lHKouZR6vuSZlCqmxI9SlnUPEpZSvUoZVH09NKaSQ6wF7gV\nuAPYYWZP1q+PjXCWEj1KWdQ8SlnUPEpZ1DxKfV/SDEp1U6JHKYuaRylLqR6lLIqeLm36Ts6f7n4e\nuutwf2pmPwLD2CciKkuJHqUsah6lLGoepSxqHqW+L2kGpbop0aOURc2jlKVUj1IWRU+XNn2S872Z\njZvZde4+CTwC7ANWj3CWEj1KWdQ8SlnUPEpZ1DxKfV/SDEp1U6JHKYuaRylLqR6lLIqeLm2a5GwH\nTlLPCN39J2A9cGiEs5ToUcqi5lHKouZRyqLmUer7kmZQqpsSPUpZ1DxKWUr1KGVR9HQZm5rKJxaS\nJEmSJEmSJCmHNn2SkyRJkiRJkiRJC8hJTpIkSZIkSZIkRZGTnCRJkiRJkiRJiiInOUmSJEmSJEmS\nFEVOcpIkSZIkSZIkKYp/AKbQNxPqOTcZAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x19899eb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Investigate the size of these string descriptions, we see they are quite significant. \n",
    "# Date not Captured is noticeable but not a lot, more investigation...\n",
    "f, (ax1, ax2) = plt.subplots(1,2, figsize=(14,3))\n",
    "data['pq_date'].value_counts()[:20].plot(kind='bar', ax=ax1)\n",
    "ax1.set_title(\"20 Most-Frequent Categories in PQ_Date\")\n",
    "data['po_date'].value_counts()[:20].plot(kind='bar', ax=ax2)\n",
    "ax2.set_title(\"20 Most-Frequent Categories in PO_Date\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Let's take this outside..to excel\n",
    "po_idx = dobject[(dobject.po_date=='Date Not Captured')|(dobject.po_date==\"N/A - From RDC\")].index        \n",
    "pq_idx = dobject[(dobject.pq_date=='Pre-PQ Process') | (dobject.pq_date=='Date Not Captured')].index\n",
    "dnc_idx = list(po_idx) + list(pq_idx)\n",
    "\n",
    "#dobject.loc[dnc_idx,:].to_excel(\"po_pq_date_not_captured.xlsx\")\n",
    "#ddate.loc[dnc_idx,:].to_excel('po_pq_date_not_captured_comp.xlsx')\n",
    "\n",
    "# For South Africa, We find 2 project codes that are responsible..and a few countries too\n",
    "dobject[(dobject.proj_code=='116-ZA-T30')\n",
    "| (dobject.proj_code =='116-ZA-T01')].to_excel('po_pq_date_not_captured_ref.xlsx')\n",
    "\n",
    "dnc_proj_idx = list(dobject[(dobject.proj_code=='116-ZA-T30')\n",
    "| (dobject.proj_code =='116-ZA-T01')].index)\n",
    "ddate.loc[dnc_proj_idx,:].to_excel('po_pq_date_not_captured_comp_proj.xlsx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5732 2681 8413\n"
     ]
    }
   ],
   "source": [
    "print(len(po_idx), len(pq_idx), len(dnc_idx))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data, column, groupby = [dobject.copy(), 'po_date',['country', 'Itm_desc','del_date_scheduled','po_date']]\n",
    "#ddate.del_date_scheduled[dnc_idx] - pd.to_datetime(dobject.po_date[dnc_idx])\n",
    "dx = pd.merge(dobject, ddate, how='left', left_index=True, right_index=True)\n",
    "dx.po_date.replace({'Date Not Captured':pd.to_datetime('1900')\n",
    "                    , 'N/A - From RDC':pd.to_datetime('1910')}, inplace=True)\n",
    "dx.pq_date.replace({'Date Not Captured':pd.to_datetime('1970')\n",
    "                    , 'Pre-PQ Process':pd.to_datetime('1980'),}, inplace=True)\n",
    "dx['po_date_est'] = dx.del_date_scheduled - pd.to_datetime(dx.po_date)\n",
    "dx['pq_date_est'] = pd.to_datetime(dx.po_date) - pd.to_datetime(dx.pq_date)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Replace strings with dummy dates, estimate days from purchase order to scheduled delivery"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(10324, 3) (10324, 23)\n",
      "(10324, 5) (10324, 21)\n",
      "\n",
      " Describe..         pq_date_est   po_date_est\n",
      "count  10324.000000  10324.000000\n",
      "mean    2906.575746  20701.253003\n",
      "std     4653.136085  18453.240587\n",
      "min     -150.000000   -160.000000\n",
      "25%      127.000000    105.750000\n",
      "50%      196.000000  35809.000000\n",
      "75%     9914.000000  37337.000000\n",
      "max    14663.000000  41378.000000\n"
     ]
    }
   ],
   "source": [
    "## Make Sandbox...\n",
    "dd , do = ddate.copy(),dobject.copy()\n",
    "do.po_date.replace({'Date Not Captured':pd.to_datetime('1900')\n",
    "                    , 'N/A - From RDC':pd.to_datetime('1910')}, inplace=True)\n",
    "do.pq_date.replace({'Date Not Captured':pd.to_datetime('1970')\n",
    "                    , 'Pre-PQ Process':pd.to_datetime('1980'),}, inplace=True)\n",
    "print(dd.shape, do.shape)\n",
    "for col in ['pq_date', 'po_date']:\n",
    "    dd[col] = pd.to_datetime(do[col])\n",
    "    do.drop(col, axis=1, inplace=True)\n",
    "print(dd.shape, do.shape)\n",
    "dd.head()\n",
    "# do conversions...\n",
    "estdates =['pq_date','po_date'] \n",
    "time_factor = 1e9*3600*24.0\n",
    "for c in estdates:\n",
    "    dd[c+\"_est\"] = pd.to_numeric(dd['del_date_scheduled'] - dd[c])/(time_factor)\n",
    "print(\"\\n Describe..\",dd.describe())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Length PO troublesome indices:  5732\n",
      "Length PQ troublesome indices:  2681\n",
      "Index(['del_date_scheduled', 'del_date_client', 'del_date_recorded', 'pq_date',\n",
      "       'po_date', 'pq_date_est', 'po_date_est', 'country', 'vendor',\n",
      "       'itm_desc', 'year'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "# Make seperate indices\n",
    "fillvals = ['1900', '1910', '1970', '1980']\n",
    "po_dnc_i, po_rdc_i  = list(dd[dd.po_date==fillvals[0]].index), list(dd[dd.po_date==fillvals[1]].index)\n",
    "pq_dnc_i,pq_pqp_i = list(dd[dd.pq_date==fillvals[2]].index),list(dd[dd.pq_date==fillvals[3]].index)\n",
    "print(\"Length PO troublesome indices: \",len(set(po_dnc_i+po_rdc_i)))\n",
    "print(\"Length PQ troublesome indices: \",len(set(pq_dnc_i+pq_pqp_i)))\n",
    "# Merge with country vendor then add year variable\n",
    "dd = pd.merge(dd, do[['country', 'vendor', 'itm_desc']], how=\"left\", right_index=True, left_index=True)\n",
    "dd['year'] = [x.year for x in dd.del_date_scheduled]\n",
    "print(dd.columns)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Make Purchase order date (po_date)  lookup dataframe and merge"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Begin mean:  pq_date_est     2906.575746\n",
      "po_date_est    20701.253003\n",
      "year            2011.257555\n",
      "dtype: float64\n",
      "\n",
      "End mean:  pq_date_est    1851.457753\n",
      "po_date_est     105.742596\n",
      "year           2011.851699\n",
      "dtype: float64\n",
      "\\Lookup table columns:  Index(['country', 'year', 'pq_date_est', 'po_date_est'], dtype='object') Index(['year', 'pq_date_est', 'po_date_est'], dtype='object')\n",
      "1910-01-01    5404\n",
      "1900-01-01     328\n",
      "Name: po_date, dtype: int64\n",
      "\n",
      "Nulls remaining:  153\n",
      "\n",
      "Nulls remaining:  0\n",
      "  del_date_scheduled del_date_client del_date_recorded    pq_date    po_date  \\\n",
      "0         2006-06-02      2006-06-02        2006-06-02 1980-01-01 1900-01-01   \n",
      "1         2006-11-14      2006-11-14        2006-11-14 1980-01-01 1900-01-01   \n",
      "2         2006-08-27      2006-08-27        2006-08-27 1980-01-01 1900-01-01   \n",
      "3         2006-09-01      2006-09-01        2006-09-01 1980-01-01 1900-01-01   \n",
      "4         2006-08-11      2006-08-11        2006-08-11 1980-01-01 1900-01-01   \n",
      "\n",
      "   pq_date_est_x  po_date_est_x  pq_date_est_y  po_date_est_y  pq_date_est  \\\n",
      "0         9649.0        38868.0         9674.0           69.0       9766.0   \n",
      "1         9814.0        39033.0            NaN            NaN       9766.0   \n",
      "2         9735.0        38954.0         9674.0           69.0       9766.0   \n",
      "3         9740.0        38959.0            NaN            NaN       9766.0   \n",
      "4         9719.0        38938.0            NaN            NaN       9766.0   \n",
      "\n",
      "   po_date_est  \n",
      "0         41.5  \n",
      "1         41.5  \n",
      "2         41.5  \n",
      "3         41.5  \n",
      "4         41.5  \n"
     ]
    }
   ],
   "source": [
    "# Make lookup tables with alternate FillValues (summary stats) \n",
    "print(\"\\nBegin mean: \", dd.mean())\n",
    "# drop the problem items first  in the right order then aggregate at right level\n",
    "dd_trim= dd.drop(po_dnc_i + po_rdc_i, axis=0)\n",
    "print(\"\\nEnd mean: \",dd_trim.mean())\n",
    "# Make lookup tables for po\n",
    "po_lkup = dd_trim.groupby(['country','year']).agg('mean').reset_index()\n",
    "po_lkup_yr = dd_trim.groupby(['year']).agg('mean').reset_index()\n",
    "print(\"\\Lookup table columns: \",po_lkup.columns,po_lkup_yr.columns)\n",
    "# Now merge with original dd, not dd_trim..\n",
    "#del tst;del tst2\n",
    "# Merge with more detailed averages, country-year level\n",
    "print(dd.loc[po_rdc_i + po_dnc_i,'po_date'].value_counts()[:10])\n",
    "tst =pd.merge(dd, po_lkup, left_on=['country','year'],\n",
    "        right_on=['country', 'year'], how='left')\n",
    "print(\"\\nNulls remaining: \",tst['po_date_est_y'].isnull().sum())\n",
    "# # Merge with less detailed averages, year level\n",
    "tst2 =pd.merge(tst, po_lkup_yr, left_on=['year'],\n",
    "        right_on=['year'], how='left')\n",
    "print(\"\\nNulls remaining: \",tst2['po_date_est'].isnull().sum())\n",
    "print(tst2[['del_date_scheduled', 'del_date_client', 'del_date_recorded', 'pq_date',\n",
    "       'po_date', 'pq_date_est_x','po_date_est_x','pq_date_est_y','po_date_est_y',\n",
    "            'pq_date_est','po_date_est']].head())\n",
    "dd = tst2[['del_date_scheduled', 'del_date_client', 'del_date_recorded', 'pq_date',\n",
    "       'po_date', 'pq_date_est_x','po_date_est_x','pq_date_est_y','po_date_est_y',\n",
    "            'pq_date_est','po_date_est']]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Purchase Order Dates - New Estimates "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---\n",
      "Total  obs: 10324, \n",
      "From _X: 10324, \n",
      "From _Y: 23, Still Null: 0\n",
      "---\n",
      "Total  obs: 10324, \n",
      "From _X: 4592, \n",
      "From _Y: 5602, Still Null: 153\n",
      "Mean for PO DaTE:  104.24235249154053\n",
      "---\n",
      "Total  obs: 10324, \n",
      "From _Y: 153, Still Null: 0\n",
      "Mean for PO DaTE:  103.79779573316473\n",
      "0\n"
     ]
    }
   ],
   "source": [
    "###### Estimate PO DATE using fill values and conditional logic on df ##########\n",
    "# Merge the columns into one first and second\n",
    "dd['po_datediff'] = dd.po_date_est_x\n",
    "print(\"---\\nTotal  obs: {}, \\nFrom _X: {}, \\nFrom _Y: {}, Still Null: {}\".format(\n",
    "    len(dd.po_datediff), sum(dd.po_datediff==dd.po_date_est_x)\n",
    "      , sum(dd.po_datediff==dd.po_date_est_y), dd.po_datediff.isnull().sum()))\n",
    "m1 = dd.po_datediff < 2000\n",
    "dd['po_datediff'].where(m1,dd.po_date_est_y,inplace=True)\n",
    "print(\"---\\nTotal  obs: {}, \\nFrom _X: {}, \\nFrom _Y: {}, Still Null: {}\".format(\n",
    "    len(dd.po_datediff), sum(dd.po_datediff==dd.po_date_est_x)\n",
    "      , sum(dd.po_datediff==dd.po_date_est_y), dd.po_datediff.isnull().sum()))\n",
    "# DEal with the remaining nulls\n",
    "print('Mean for PO DaTE: ',dd.po_datediff.mean())\n",
    "m2 = dd.po_datediff.notnull()\n",
    "dd['po_datediff'].where(m2,dd.po_date_est,inplace=True)\n",
    "print(\"---\\nTotal  obs: {}, \\nFrom _Y: {}, Still Null: {}\".format(\n",
    "    len(dd.po_datediff), sum(dd.po_datediff==dd.po_date_est), dd.po_datediff.isnull().sum()))\n",
    "print('Mean for PO DaTE: ',dd.po_datediff.mean())\n",
    "## Calculating New PO Date, Finally!\n",
    "dd['po_date_new'] = dd.del_date_scheduled-[pd.Timedelta(str(x)+\" days\") for x in dd.po_datediff]\n",
    "print(dd.po_date_new.isnull().sum())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Purchase Quote Dates - New Estimates "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2906.5757458349476\n",
      "172.24349077587334\n",
      "pq_date_est_x     2906.575746\n",
      "po_date_est_x    20701.253003\n",
      "pq_date_est_y     2582.371079\n",
      "po_date_est_y      104.242352\n",
      "pq_date_est       2659.086700\n",
      "po_date_est        102.549427\n",
      "po_datediff        103.797796\n",
      "pq_datediff        172.243491\n",
      "dtype: float64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Index(['del_date_scheduled', 'del_date_client', 'del_date_recorded', 'pq_date',\n",
       "       'po_date', 'po_date_new', 'pq_date_new'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "###### PQ DATE is then derived from NEW PO DATE ########\n",
    "# keep it simple i.e. what is the average podate pqdate diff without the problem areas?\n",
    "dd['pq_datediff'] = dd.pq_date_est_x\n",
    "pq_mean = dd.drop(pq_dnc_i+pq_pqp_i, axis=0)['pq_datediff'].mean()\n",
    "print(dd.pq_date_est_x.mean())\n",
    "print(pq_mean)\n",
    "n1 = dd.pq_datediff < 2000\n",
    "dd['pq_datediff'] = dd['pq_datediff'].where(n1,pq_mean)\n",
    "dd['pq_date_new'] = dd.po_date_new -[pd.Timedelta(str(x)+\" days\") for x in dd.pq_datediff]\n",
    "print(dd.mean())\n",
    "ddate = dd[['del_date_scheduled', 'del_date_client', 'del_date_recorded', 'pq_date',\n",
    "       'po_date','po_date_new', 'pq_date_new']]\n",
    "ddate.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Weight and Freight Cost\n",
    "#### The freight cost and weight columns should be either floats or ints \n",
    "#### But currently are misclassified as \"object\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ab5bda0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mhf.plotFreq(dobject, ['freight_cost', 'weight'], cutoff=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Type Counts for: freight_cost, \n",
      "<class 'float'>    5734\n",
      "<class 'str'>      4126\n",
      "<class 'int'>       464\n",
      "dtype: int64\n",
      "\n",
      "Type Counts for: weight, \n",
      "<class 'float'>    5734\n",
      "<class 'str'>      4126\n",
      "<class 'int'>       464\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "# Convert all numbers to floats, transform all numbers to numeric, deal strings later below...\n",
    "fwcols = ['freight_cost','weight']\n",
    "for c in fwcols:\n",
    "    dobject[c]=dobject[c].apply(lambda x: pd.to_numeric(x, errors = 'ignore'))\n",
    "    print(\"\\nType Counts for: {}, \\n{}\".format(c,\n",
    "        pd.Series([type(x) for x in dobject['freight_cost']]).value_counts()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Initial observations..\n",
    "We can see a few things:\n",
    "\n",
    "- for freight_cost \n",
    "    - about 1500 times the freight is included in the commodity cost\n",
    "    - About 250 times the freight is invoiced separately\n",
    "    - Several entries have a reference instead of amount. \n",
    "        - This reference can occurs many times, find out what it means..\n",
    "    - The rest of the entries are numerical as expected: a mixture of integers and floats\n",
    "- for weight: \n",
    "    - About 1500 times the weight was captured seperately\n",
    "    - the rest are mostly integers\n",
    "    \n",
    "    ===========\n",
    "\n",
    "- First Line Designation\t\n",
    "    - Designates if the line in question shows the aggregated freight costs and weight associated with all items on the ASN/DN .There may or may not be other associated lines with each ASN/DN\n",
    "- Weight (Kilograms)\n",
    "    - Weight for all lines on an ASN/DN\tPresent only for FirstLine designated lines\n",
    "- Freight Cost (USD)\n",
    "    - Freight charges associated with all lines on the respective ASN/DN\tPresent only for FirstLine designated lines. For C- and D-vendor INCO term deliveries, freight costs may be included in the unit price for the commodities as indicated by \"Freight Included in Commodity Price\". All other lines are \"Invoiced Separately\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Get more insight into the freight and weight columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "--- freight_cost\n",
      " 1                                     6198\n",
      "Freight Included in Commodity Cost    1442\n",
      "Invoiced Separately                    239\n",
      "See DN-304 (ID#:10589)                  16\n",
      "See ASN-32231 (ID#:13648)               14\n",
      "See ASN-31750 (ID#:19272)               14\n",
      "See ASN-28279 (ID#:13547)               13\n",
      "See DN-3015 (ID#:82554)                 12\n",
      "Name: freight_cost, dtype: int64\n",
      "\n",
      "--- weight\n",
      " 1                             6372\n",
      "Weight Captured Separately    1507\n",
      "See DN-304 (ID#:10589)          16\n",
      "See ASN-31750 (ID#:19272)       14\n",
      "See ASN-32231 (ID#:13648)       14\n",
      "See ASN-28279 (ID#:13547)       13\n",
      "See DN-3015 (ID#:82554)         12\n",
      "See ASN-26738 (ID#:15115)       10\n",
      "Name: weight, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "for c in fwcols:\n",
    "    print(\"\\n---\",c+\"\\n\",dobject[c].apply(lambda x: x if type(x)== str else 1).value_counts()[:8])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x8a62780>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x8aa9358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's see an example for weight\n",
    "dobject[dobject['weight'] == 'See DN-304 (ID#:10589)']['itm_desc'].value_counts().plot(\n",
    "    kind='barh')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x8950f98>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x8cf7198>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's see an example for weight\n",
    "dobject[dobject['weight'] == 'See DN-304 (ID#:10589)']['factory'].value_counts().plot(\n",
    "    kind='barh')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/n Weight:  1056    9006\n",
      "Name: weight, dtype: object\n"
     ]
    }
   ],
   "source": [
    "# This is the top line item with the weight data for all the ones above..\n",
    "# Weight is bundled/consolidated\n",
    "print(\"/n Weight: \", dobject[dint['id']==10589].weight)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>proj_code</th>\n",
       "      <th>pq_no</th>\n",
       "      <th>po_no</th>\n",
       "      <th>ship_no</th>\n",
       "      <th>country</th>\n",
       "      <th>mngr</th>\n",
       "      <th>fulfill_via</th>\n",
       "      <th>vendor_terms</th>\n",
       "      <th>ship_mode</th>\n",
       "      <th>pq_date</th>\n",
       "      <th>...</th>\n",
       "      <th>vendor</th>\n",
       "      <th>itm_desc</th>\n",
       "      <th>molecule_test</th>\n",
       "      <th>brand</th>\n",
       "      <th>dosage</th>\n",
       "      <th>dosage_form</th>\n",
       "      <th>factory</th>\n",
       "      <th>first_line</th>\n",
       "      <th>weight</th>\n",
       "      <th>freight_cost</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3623</th>\n",
       "      <td>101-CD-T30</td>\n",
       "      <td>FPQ-16001</td>\n",
       "      <td>SCMS-280210</td>\n",
       "      <td>ASN-31750</td>\n",
       "      <td>Congo, DRC</td>\n",
       "      <td>PMO - US</td>\n",
       "      <td>Direct Drop</td>\n",
       "      <td>EXW</td>\n",
       "      <td>Air</td>\n",
       "      <td>2015-03-10 00:00:00</td>\n",
       "      <td>...</td>\n",
       "      <td>Trinity Biotech, Plc</td>\n",
       "      <td>HIV 1/2, Uni-Gold HIV Kit, 20 Tests</td>\n",
       "      <td>HIV 1/2, Uni-Gold HIV Kit</td>\n",
       "      <td>Uni-Gold</td>\n",
       "      <td>TestKit/Ancillary</td>\n",
       "      <td>Test kit</td>\n",
       "      <td>Trinity Biotech, Plc</td>\n",
       "      <td>No</td>\n",
       "      <td>See ASN-31750 (ID#:19272)</td>\n",
       "      <td>See ASN-31750 (ID#:19272)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4041</th>\n",
       "      <td>101-CD-T30</td>\n",
       "      <td>FPQ-16001</td>\n",
       "      <td>SCMS-280210</td>\n",
       "      <td>ASN-31750</td>\n",
       "      <td>Congo, DRC</td>\n",
       "      <td>PMO - US</td>\n",
       "      <td>Direct Drop</td>\n",
       "      <td>EXW</td>\n",
       "      <td>Truck</td>\n",
       "      <td>2015-03-10 00:00:00</td>\n",
       "      <td>...</td>\n",
       "      <td>Trinity Biotech, Plc</td>\n",
       "      <td>HIV 1/2, Uni-Gold HIV Kit, 20 Tests</td>\n",
       "      <td>HIV 1/2, Uni-Gold HIV Kit</td>\n",
       "      <td>Uni-Gold</td>\n",
       "      <td>TestKit/Ancillary</td>\n",
       "      <td>Test kit</td>\n",
       "      <td>Trinity Biotech, Plc</td>\n",
       "      <td>No</td>\n",
       "      <td>See ASN-31750 (ID#:19272)</td>\n",
       "      <td>See ASN-31750 (ID#:19272)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4057</th>\n",
       "      <td>101-CD-T30</td>\n",
       "      <td>FPQ-16001</td>\n",
       "      <td>SCMS-280210</td>\n",
       "      <td>ASN-31750</td>\n",
       "      <td>Congo, DRC</td>\n",
       "      <td>PMO - US</td>\n",
       "      <td>Direct Drop</td>\n",
       "      <td>EXW</td>\n",
       "      <td>Truck</td>\n",
       "      <td>2015-03-10 00:00:00</td>\n",
       "      <td>...</td>\n",
       "      <td>Trinity Biotech, Plc</td>\n",
       "      <td>HIV 1/2, Uni-Gold HIV Kit, 20 Tests</td>\n",
       "      <td>HIV 1/2, Uni-Gold HIV Kit</td>\n",
       "      <td>Uni-Gold</td>\n",
       "      <td>TestKit/Ancillary</td>\n",
       "      <td>Test kit</td>\n",
       "      <td>Trinity Biotech, Plc</td>\n",
       "      <td>No</td>\n",
       "      <td>See ASN-31750 (ID#:19272)</td>\n",
       "      <td>See ASN-31750 (ID#:19272)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4157</th>\n",
       "      <td>101-CD-T30</td>\n",
       "      <td>FPQ-16001</td>\n",
       "      <td>SCMS-280210</td>\n",
       "      <td>ASN-31750</td>\n",
       "      <td>Congo, DRC</td>\n",
       "      <td>PMO - US</td>\n",
       "      <td>Direct Drop</td>\n",
       "      <td>EXW</td>\n",
       "      <td>Air</td>\n",
       "      <td>2015-03-10 00:00:00</td>\n",
       "      <td>...</td>\n",
       "      <td>Trinity Biotech, Plc</td>\n",
       "      <td>HIV 1/2, Uni-Gold HIV Kit, 20 Tests</td>\n",
       "      <td>HIV 1/2, Uni-Gold HIV Kit</td>\n",
       "      <td>Uni-Gold</td>\n",
       "      <td>TestKit/Ancillary</td>\n",
       "      <td>Test kit</td>\n",
       "      <td>Trinity Biotech, Plc</td>\n",
       "      <td>No</td>\n",
       "      <td>See ASN-31750 (ID#:19272)</td>\n",
       "      <td>See ASN-31750 (ID#:19272)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4448</th>\n",
       "      <td>101-CD-T30</td>\n",
       "      <td>FPQ-16001</td>\n",
       "      <td>SCMS-280210</td>\n",
       "      <td>ASN-31750</td>\n",
       "      <td>Congo, DRC</td>\n",
       "      <td>PMO - US</td>\n",
       "      <td>Direct Drop</td>\n",
       "      <td>EXW</td>\n",
       "      <td>Air</td>\n",
       "      <td>2015-03-10 00:00:00</td>\n",
       "      <td>...</td>\n",
       "      <td>Trinity Biotech, Plc</td>\n",
       "      <td>HIV 1/2, Uni-Gold HIV Kit, 20 Tests</td>\n",
       "      <td>HIV 1/2, Uni-Gold HIV Kit</td>\n",
       "      <td>Uni-Gold</td>\n",
       "      <td>TestKit/Ancillary</td>\n",
       "      <td>Test kit</td>\n",
       "      <td>Trinity Biotech, Plc</td>\n",
       "      <td>No</td>\n",
       "      <td>See ASN-31750 (ID#:19272)</td>\n",
       "      <td>See ASN-31750 (ID#:19272)</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 23 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       proj_code      pq_no        po_no    ship_no     country      mngr  \\\n",
       "3623  101-CD-T30  FPQ-16001  SCMS-280210  ASN-31750  Congo, DRC  PMO - US   \n",
       "4041  101-CD-T30  FPQ-16001  SCMS-280210  ASN-31750  Congo, DRC  PMO - US   \n",
       "4057  101-CD-T30  FPQ-16001  SCMS-280210  ASN-31750  Congo, DRC  PMO - US   \n",
       "4157  101-CD-T30  FPQ-16001  SCMS-280210  ASN-31750  Congo, DRC  PMO - US   \n",
       "4448  101-CD-T30  FPQ-16001  SCMS-280210  ASN-31750  Congo, DRC  PMO - US   \n",
       "\n",
       "      fulfill_via vendor_terms ship_mode              pq_date  \\\n",
       "3623  Direct Drop          EXW       Air  2015-03-10 00:00:00   \n",
       "4041  Direct Drop          EXW     Truck  2015-03-10 00:00:00   \n",
       "4057  Direct Drop          EXW     Truck  2015-03-10 00:00:00   \n",
       "4157  Direct Drop          EXW       Air  2015-03-10 00:00:00   \n",
       "4448  Direct Drop          EXW       Air  2015-03-10 00:00:00   \n",
       "\n",
       "                ...                            vendor  \\\n",
       "3623            ...              Trinity Biotech, Plc   \n",
       "4041            ...              Trinity Biotech, Plc   \n",
       "4057            ...              Trinity Biotech, Plc   \n",
       "4157            ...              Trinity Biotech, Plc   \n",
       "4448            ...              Trinity Biotech, Plc   \n",
       "\n",
       "                                 itm_desc              molecule_test  \\\n",
       "3623  HIV 1/2, Uni-Gold HIV Kit, 20 Tests  HIV 1/2, Uni-Gold HIV Kit   \n",
       "4041  HIV 1/2, Uni-Gold HIV Kit, 20 Tests  HIV 1/2, Uni-Gold HIV Kit   \n",
       "4057  HIV 1/2, Uni-Gold HIV Kit, 20 Tests  HIV 1/2, Uni-Gold HIV Kit   \n",
       "4157  HIV 1/2, Uni-Gold HIV Kit, 20 Tests  HIV 1/2, Uni-Gold HIV Kit   \n",
       "4448  HIV 1/2, Uni-Gold HIV Kit, 20 Tests  HIV 1/2, Uni-Gold HIV Kit   \n",
       "\n",
       "         brand             dosage dosage_form               factory  \\\n",
       "3623  Uni-Gold  TestKit/Ancillary    Test kit  Trinity Biotech, Plc   \n",
       "4041  Uni-Gold  TestKit/Ancillary    Test kit  Trinity Biotech, Plc   \n",
       "4057  Uni-Gold  TestKit/Ancillary    Test kit  Trinity Biotech, Plc   \n",
       "4157  Uni-Gold  TestKit/Ancillary    Test kit  Trinity Biotech, Plc   \n",
       "4448  Uni-Gold  TestKit/Ancillary    Test kit  Trinity Biotech, Plc   \n",
       "\n",
       "     first_line                     weight               freight_cost  \n",
       "3623         No  See ASN-31750 (ID#:19272)  See ASN-31750 (ID#:19272)  \n",
       "4041         No  See ASN-31750 (ID#:19272)  See ASN-31750 (ID#:19272)  \n",
       "4057         No  See ASN-31750 (ID#:19272)  See ASN-31750 (ID#:19272)  \n",
       "4157         No  See ASN-31750 (ID#:19272)  See ASN-31750 (ID#:19272)  \n",
       "4448         No  See ASN-31750 (ID#:19272)  See ASN-31750 (ID#:19272)  \n",
       "\n",
       "[5 rows x 23 columns]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Let's see an example for freight cost\n",
    "dobject[dobject['freight_cost'] == 'See ASN-31750 (ID#:19272)'].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "       proj_code      pq_no        po_no    ship_no     country      mngr  \\\n",
      "3014  101-CD-T30  FPQ-16001  SCMS-280210  ASN-31750  Congo, DRC  PMO - US   \n",
      "\n",
      "      fulfill_via vendor_terms ship_mode              pq_date     ...       \\\n",
      "3014  Direct Drop          EXW       Air  2015-03-10 00:00:00     ...        \n",
      "\n",
      "                    vendor                             itm_desc  \\\n",
      "3014  Trinity Biotech, Plc  HIV 1/2, Uni-Gold HIV Kit, 20 Tests   \n",
      "\n",
      "                  molecule_test     brand             dosage dosage_form  \\\n",
      "3014  HIV 1/2, Uni-Gold HIV Kit  Uni-Gold  TestKit/Ancillary    Test kit   \n",
      "\n",
      "                   factory first_line weight freight_cost  \n",
      "3014  Trinity Biotech, Plc        Yes    508      3918.37  \n",
      "\n",
      "[1 rows x 23 columns] /nFreight Cost:  3014    3918.37\n",
      "Name: freight_cost, dtype: object\n"
     ]
    }
   ],
   "source": [
    "# This is the top line item with the freight cost for all the ones above..\n",
    "print(dobject[dint['id']==19272], \"/nFreight Cost: \", dobject[dint['id']==19272].freight_cost)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Save both of these to csv files for inspections!\n",
    "# dobject[dint['id']==10589].to_csv(\"weight_ID10589.csv\")\n",
    "# dobject[dobject['weight'] == 'See DN-304 (ID#:10589)'].to_csv(\"weight_See DN-304 ID10589.csv\")\n",
    "# dobject[dint['id']==19272].to_csv(\"freightcost_ID19272.csv\")\n",
    "# dobject[dobject['freight_cost'] == 'See ASN-31750 (ID#:19272)'].to_csv(\"freightcost_See ASN-31750 ID19272.csv\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Weight - new estimates "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "all bundled :  (4744, 23)\n",
      "all unbundled:  (5580, 23) \n",
      "----\n",
      "\n",
      "Unbundled Items Top Freq: \n",
      "----\n",
      " Weight Captured Separately    465\n",
      "2                              29\n",
      "6                              24\n",
      "1                              23\n",
      "5                              20\n",
      "Name: weight, dtype: int64,Bundled Items Top Freq: \n",
      "----\n",
      " Weight Captured Separately    1042\n",
      "See DN-304 (ID#:10589)          16\n",
      "See ASN-32231 (ID#:13648)       14\n",
      "See ASN-31750 (ID#:19272)       14\n",
      "See ASN-28279 (ID#:13547)       13\n",
      "Name: weight, dtype: int64 \n"
     ]
    }
   ],
   "source": [
    "#Alternatively...use ship numbers to make dict\n",
    "bundled_itms =dobject.groupby('ship_no').filter(lambda x: len(x)>1)\n",
    "print(\"all bundled : \", bundled_itms.shape)\n",
    "unbundled_itms = dobject.groupby('ship_no').filter(lambda x: len(x)==1)\n",
    "print(\"all unbundled: \",unbundled_itms.shape,\"\\n----\\n\")\n",
    "print(\"Unbundled Items Top Freq: \\n----\\n {},Bundled Items Top Freq: \\n----\\n {} \".format(unbundled_itms.weight.value_counts()[:5]\n",
    ",bundled_itms.weight.value_counts()[:5]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "only bundled separate weight:  (1042, 23)\n",
      "only single separate weight:  (465, 23)\n"
     ]
    }
   ],
   "source": [
    "# Find those with weight captured separately\n",
    "sep_weight_bundled = bundled_itms[bundled_itms.weight== 'Weight Captured Separately']\n",
    "print(\"only bundled separate weight: \",sep_weight_bundled.shape)\n",
    "sep_weight_single = unbundled_itms[unbundled_itms.weight== 'Weight Captured Separately']\n",
    "print(\"only single separate weight: \",sep_weight_single.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "only single:  (5115, 23)\n",
      "only topline:  (1257, 23)\n",
      "only bottom items : (2445, 23)\n"
     ]
    }
   ],
   "source": [
    "# Seperate out the single, topline and bottom items..\n",
    "single_itms = unbundled_itms.drop(list(sep_weight_single.index),axis=0)\n",
    "print(\"only single: \",single_itms.shape)\n",
    "bundled_no_sep_weight = bundled_itms.drop(list(sep_weight_bundled.index),axis=0)\n",
    "top_itms = bundled_no_sep_weight[[type(x)==int for x in bundled_no_sep_weight.weight]]\n",
    "print(\"only topline: \",top_itms.shape)\n",
    "bottom_itms = bundled_no_sep_weight.drop(top_itms.index)\n",
    "print(\"only bottom items :\",bottom_itms.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Check, must both equal n=10234 \n",
      "---\n",
      " 10324\n",
      "10324\n"
     ]
    }
   ],
   "source": [
    "# Check the math, should both equal 10234\n",
    "print(\"Check, must both equal n=10234 \\n---\\n\",top_itms.shape[0] + bottom_itms.shape[0] + single_itms.shape[0] + sep_weight_single.shape[0] + sep_weight_bundled.shape[0])\n",
    "print(bundled_itms.shape[0] + unbundled_itms.shape[0])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Finally, merged with dataframe based on lookup table"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Calculate Average Weight per Item"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(5115, 7) Index(['itm_desc', 'weight', 'molecule_test', 'dosage_form', 'ln_itm_qty',\n",
      "       'units', 'itm_weight'],\n",
      "      dtype='object')\n",
      "(10324, 24) (10324, 25) (10324, 26)\n"
     ]
    }
   ],
   "source": [
    "# Make weight lookup dictionary to cover all product item scenarios\n",
    "w_lkup = single_itms[['itm_desc','weight','molecule_test', 'dosage_form']]\n",
    "w_lkup['weight'] = pd.to_numeric(w_lkup.weight)\n",
    "w_lkup['ln_itm_qty'] = dint.loc[list(w_lkup.index),:]['ln_itm_qty']\n",
    "w_lkup['units'] = dint.loc[list(w_lkup.index),:]['units']\n",
    "w_lkup['itm_weight'] = w_lkup.weight/w_lkup.ln_itm_qty\n",
    "print(w_lkup.shape, w_lkup.columns)\n",
    "\n",
    "# Make lookup tables for each case, in order..\n",
    "w_lkup_itm = w_lkup.groupby('itm_desc').mean().reset_index()[['itm_desc', 'itm_weight']]\n",
    "w_lkup_mol = w_lkup.groupby('molecule_test').mean().reset_index()[['molecule_test', 'itm_weight']]\n",
    "w_lkup_dos = w_lkup.groupby('dosage_form').mean().reset_index()[['dosage_form', 'itm_weight']]\n",
    "\n",
    "merge_itm = pd.merge(dobject, w_lkup_itm, how='left', left_on='itm_desc', right_on='itm_desc')\n",
    "merge_mol = pd.merge(merge_itm, w_lkup_mol, how='left', left_on='molecule_test'\n",
    "                     , right_on='molecule_test')\n",
    "merge_dos = pd.merge(merge_mol, w_lkup_dos, how='left', left_on='dosage_form'\n",
    "                     , right_on='dosage_form')\n",
    "print(merge_itm.shape, merge_mol.shape, merge_dos.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " Nulls at starting point:  241\n",
      " Nulls at midpoint...:  49\n",
      " Nulls at endpoint:  0\n"
     ]
    }
   ],
   "source": [
    "print(\" Nulls at starting point: \", merge_dos.itm_weight_x.isnull().sum())\n",
    "w1 = merge_dos.itm_weight_x.notnull()\n",
    "merge_dos['itm_weight_new'] =merge_dos.itm_weight_x.where(w1\n",
    "                                                                ,merge_dos.itm_weight_y)\n",
    "print(\" Nulls at midpoint...: \", merge_dos.itm_weight_new.isnull().sum())\n",
    "w2 = merge_dos.itm_weight_new.notnull()\n",
    "merge_dos['itm_weight_new'] = merge_dos.itm_weight_new.where(w2\n",
    "                                                                ,merge_dos.itm_weight)\n",
    "print(\" Nulls at endpoint: \", merge_dos.itm_weight_new.isnull().sum())\n",
    "dobject = merge_dos[['proj_code', 'pq_no', 'po_no', 'ship_no', 'country', 'mngr',\n",
    "       'fulfill_via', 'vendor_terms', 'ship_mode', 'pq_date', 'po_date',\n",
    "       'prod_grp', 'sub_class', 'vendor', 'itm_desc', 'molecule_test', 'brand',\n",
    "       'dosage', 'dosage_form', 'factory', 'first_line', 'weight',\n",
    "       'freight_cost',\n",
    "        #'itm_weight_x', 'itm_weight_y', 'itm_weight',\n",
    "       'itm_weight_new']]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Calculate the real weight of items and move it to the float dictionary"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 10324 entries, 0 to 10323\n",
      "Data columns (total 5 columns):\n",
      "ln_itm_val       10324 non-null float64\n",
      "pk_price         10324 non-null float64\n",
      "unit_price       10324 non-null float64\n",
      "line_itm_ins     10324 non-null float64\n",
      "ln_itm_weight    10324 non-null float64\n",
      "dtypes: float64(5)\n",
      "memory usage: 403.4 KB\n"
     ]
    }
   ],
   "source": [
    "dfloat['ln_itm_weight'] = dint['ln_itm_qty']*dobject['itm_weight_new']\n",
    "# drop it in the dobject\n",
    "dobject.drop(['itm_weight_new'\n",
    "             # ,'weight'\n",
    "             ], axis=1, inplace=True)\n",
    "dfloat.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Freight Cost - new estimate"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Freight Included in Commodity Cost    1442\n",
       "Invoiced Separately                    239\n",
       "9736.1                                  36\n",
       "6147.18                                 27\n",
       "See DN-304 (ID#:10589)                  16\n",
       "Name: freight_cost, dtype: int64"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dobject.freight_cost.value_counts()[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "only bundled separate freight_cost:  (58, 23)\n",
      "only single separate freight_cost:  (181, 23)\n",
      "only bundled freight_cost in commodity cost:  (1000, 23)\n",
      "only single freight_cost in commodity cost:  (442, 23)\n"
     ]
    }
   ],
   "source": [
    "# FC Invoiced Seperately\n",
    "sep_freight_cost_bundled = bundled_itms[bundled_itms.freight_cost== 'Invoiced Separately']\n",
    "print(\"only bundled separate freight_cost: \",sep_freight_cost_bundled.shape)\n",
    "sep_freight_cost_single = unbundled_itms[unbundled_itms.freight_cost== 'Invoiced Separately']\n",
    "print(\"only single separate freight_cost: \",sep_freight_cost_single.shape)\n",
    "# FC Included in Commodity Costs\n",
    "included_freight_cost_bundled = bundled_itms[bundled_itms.freight_cost== 'Freight Included in Commodity Cost']\n",
    "print(\"only bundled freight_cost in commodity cost: \",included_freight_cost_bundled.shape)\n",
    "included_freight_cost_single = unbundled_itms[unbundled_itms.freight_cost== 'Freight Included in Commodity Cost']\n",
    "print(\"only single freight_cost in commodity cost: \",included_freight_cost_single.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Freight Included in Commodity Cost    173\n",
       "9736.1                                 35\n",
       "6147.18                                27\n",
       "Name: freight_cost, dtype: int64"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "single_itms.freight_cost.value_counts()[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Freight Included in Commodity Cost    23\n",
       "17090                                  6\n",
       "7329.83                                4\n",
       "Name: freight_cost, dtype: int64"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "top_itms.freight_cost.value_counts()[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "See DN-304 (ID#:10589)       16\n",
       "See ASN-32231 (ID#:13648)    14\n",
       "See ASN-31750 (ID#:19272)    14\n",
       "Name: freight_cost, dtype: int64"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bottom_itms.freight_cost.value_counts()[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "only single:  (4942, 23)\n",
      "only topline:  (1234, 23)\n",
      "only bottom items : (2445, 23)\n"
     ]
    }
   ],
   "source": [
    "# Seperate out the single, topline and bottom items..\n",
    "single_itms_fc = single_itms.drop(list(\n",
    "single_itms[single_itms.freight_cost=='Freight Included in Commodity Cost'].index),axis=0)\n",
    "print(\"only single: \",single_itms_fc.shape)\n",
    "top_itms_fc = top_itms.drop(list(\n",
    "    top_itms[top_itms.freight_cost=='Freight Included in Commodity Cost'].index), axis=0)\n",
    "print(\"only topline: \",top_itms_fc.shape)\n",
    "bottom_itms_fc = bottom_itms\n",
    "print(\"only bottom items :\",bottom_itms_fc.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Finally, merged with dataframe based on lookup table\n",
    "\n",
    "#### Calculate Average Freight_cost per Item **weight**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4942, 6) Index(['itm_desc', 'freight_cost', 'molecule_test', 'dosage_form',\n",
      "       'ln_itm_weight', 'itm_freight_cost'],\n",
      "      dtype='object')\n",
      "(10324, 24) (10324, 25) (10324, 26)\n"
     ]
    }
   ],
   "source": [
    "# Make freight_cost lookup dictionary to cover all product item scenarios\n",
    "f_lkup = single_itms_fc[['itm_desc','freight_cost','molecule_test', 'dosage_form']]\n",
    "f_lkup['freight_cost'] = pd.to_numeric(f_lkup.freight_cost)\n",
    "f_lkup['ln_itm_weight'] = dfloat.loc[list(f_lkup.index),:]['ln_itm_weight']\n",
    "f_lkup['itm_freight_cost'] = f_lkup.freight_cost/f_lkup.ln_itm_weight\n",
    "print(f_lkup.shape, f_lkup.columns)\n",
    "# Make lookup tables for each case, in order..\n",
    "f_lkup_itm = f_lkup.groupby('itm_desc').mean().reset_index()[['itm_desc', 'itm_freight_cost']]\n",
    "f_lkup_mol = f_lkup.groupby('molecule_test').mean().reset_index()[['molecule_test', 'itm_freight_cost']]\n",
    "f_lkup_dos = f_lkup.groupby('dosage_form').mean().reset_index()[['dosage_form', 'itm_freight_cost']]\n",
    "# Merge\n",
    "fmerge_itm = pd.merge(dobject, f_lkup_itm, how='left', left_on='itm_desc', right_on='itm_desc')\n",
    "fmerge_mol = pd.merge(fmerge_itm, f_lkup_mol, how='left', left_on='molecule_test'\n",
    "                     , right_on='molecule_test')\n",
    "fmerge_dos = pd.merge(fmerge_mol, f_lkup_dos, how='left', left_on='dosage_form'\n",
    "                     , right_on='dosage_form')\n",
    "print(fmerge_itm.shape, fmerge_mol.shape, fmerge_dos.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " Nulls at starting point:  245\n",
      " Nulls at midpoint...:  49\n",
      " Nulls at endpoint:  0\n"
     ]
    }
   ],
   "source": [
    "print(\" Nulls at starting point: \", fmerge_dos.itm_freight_cost_x.isnull().sum())\n",
    "w1 = fmerge_dos.itm_freight_cost_x.notnull()\n",
    "fmerge_dos['itm_freight_cost_new'] =fmerge_dos.itm_freight_cost_x.where(w1\n",
    "                                                                ,fmerge_dos.itm_freight_cost_y)\n",
    "print(\" Nulls at midpoint...: \", fmerge_dos.itm_freight_cost_new.isnull().sum())\n",
    "w2 = fmerge_dos.itm_freight_cost_new.notnull()\n",
    "fmerge_dos['itm_freight_cost_new'] = fmerge_dos.itm_freight_cost_new.where(w2\n",
    "                                                                ,fmerge_dos.itm_freight_cost)\n",
    "print(\" Nulls at endpoint: \", fmerge_dos.itm_freight_cost_new.isnull().sum())\n",
    "dobject = fmerge_dos[['proj_code', 'pq_no', 'po_no', 'ship_no', 'country', 'mngr',\n",
    "       'fulfill_via', 'vendor_terms', 'ship_mode', 'pq_date', 'po_date',\n",
    "       'prod_grp', 'sub_class', 'vendor', 'itm_desc', 'molecule_test', 'brand',\n",
    "       'dosage', 'dosage_form', 'factory', 'first_line', 'weight',\n",
    "       'freight_cost', \n",
    "       #'itm_freight_cost_x', 'itm_freight_cost_y', 'itm_freight_cost',\n",
    "       'itm_freight_cost_new']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 10324 entries, 0 to 10323\n",
      "Data columns (total 6 columns):\n",
      "ln_itm_val             10324 non-null float64\n",
      "pk_price               10324 non-null float64\n",
      "unit_price             10324 non-null float64\n",
      "line_itm_ins           10324 non-null float64\n",
      "ln_itm_weight          10324 non-null float64\n",
      "ln_itm_freight_cost    10324 non-null float64\n",
      "dtypes: float64(6)\n",
      "memory usage: 484.0 KB\n"
     ]
    }
   ],
   "source": [
    "#### Now Calculate the real freight_cost of items and move it to the float dictionary\n",
    "dfloat['ln_itm_freight_cost'] = dfloat['ln_itm_weight']*dobject['itm_freight_cost_new']\n",
    "# drop it in the dobject\n",
    "dobject.drop(['itm_freight_cost_new'\n",
    "             # ,'freight_cost'\n",
    "             ], axis=1, inplace=True)\n",
    "dfloat.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### **Data notes:** Relationships in the cost, price and freight cost features\n",
    "\n",
    "**1. pk_price = unit_price * units **\n",
    "    - calculate pk_price_alt because this is not always the case\n",
    "    - might find some data entry errors\n",
    "    - implications of discounts \n",
    "**2. ln_itm_val = ln_itm_qty * pk_price **\n",
    "    - checks out for most of the entries\n",
    "    - double-check\n",
    "    \n",
    "**3. Freight must be proportionally related to weight **\n",
    "    - broad assumption, but should work if average line item weight per unit is used\n",
    "    - This is then multiplied by the item weight to get the ln_itm_freight_cost "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----\n",
    "## 2. Feature Engineering\n",
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Feature Extraction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Numerical Columns (float + int)\n",
    "# Cateogorical\n",
    "# Dates"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Dates"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Year, Month and Day from  the date columns to the Object columns \n",
    "##### Businessday/Weekend, Financial Quarter etc. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5 5 5\n",
      "10324 10324 10324\n",
      "(10324, 38) Index(['proj_code', 'pq_no', 'po_no', 'ship_no', 'country', 'mngr',\n",
      "       'fulfill_via', 'vendor_terms', 'ship_mode', 'pq_date', 'po_date',\n",
      "       'prod_grp', 'sub_class', 'vendor', 'itm_desc', 'molecule_test', 'brand',\n",
      "       'dosage', 'dosage_form', 'factory', 'first_line', 'weight',\n",
      "       'freight_cost', 'pq_date_new_yr', 'pq_date_new_mn', 'pq_date_new_dy',\n",
      "       'po_date_new_yr', 'po_date_new_mn', 'po_date_new_dy',\n",
      "       'del_date_scheduled_yr', 'del_date_scheduled_mn',\n",
      "       'del_date_scheduled_dy', 'del_date_client_yr', 'del_date_client_mn',\n",
      "       'del_date_client_dy', 'del_date_recorded_yr', 'del_date_recorded_mn',\n",
      "       'del_date_recorded_dy'],\n",
      "      dtype='object')\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 10324 entries, 0 to 10323\n",
      "Data columns (total 38 columns):\n",
      "proj_code                10324 non-null object\n",
      "pq_no                    10324 non-null object\n",
      "po_no                    10324 non-null object\n",
      "ship_no                  10324 non-null object\n",
      "country                  10324 non-null object\n",
      "mngr                     10324 non-null object\n",
      "fulfill_via              10324 non-null object\n",
      "vendor_terms             10324 non-null object\n",
      "ship_mode                10324 non-null object\n",
      "pq_date                  10324 non-null object\n",
      "po_date                  10324 non-null object\n",
      "prod_grp                 10324 non-null object\n",
      "sub_class                10324 non-null object\n",
      "vendor                   10324 non-null object\n",
      "itm_desc                 10324 non-null object\n",
      "molecule_test            10324 non-null object\n",
      "brand                    10324 non-null object\n",
      "dosage                   10324 non-null object\n",
      "dosage_form              10324 non-null object\n",
      "factory                  10324 non-null object\n",
      "first_line               10324 non-null object\n",
      "weight                   10324 non-null object\n",
      "freight_cost             10324 non-null object\n",
      "pq_date_new_yr           10324 non-null category\n",
      "pq_date_new_mn           10324 non-null category\n",
      "pq_date_new_dy           10324 non-null category\n",
      "po_date_new_yr           10324 non-null category\n",
      "po_date_new_mn           10324 non-null category\n",
      "po_date_new_dy           10324 non-null category\n",
      "del_date_scheduled_yr    10324 non-null category\n",
      "del_date_scheduled_mn    10324 non-null category\n",
      "del_date_scheduled_dy    10324 non-null category\n",
      "del_date_client_yr       10324 non-null category\n",
      "del_date_client_mn       10324 non-null category\n",
      "del_date_client_dy       10324 non-null category\n",
      "del_date_recorded_yr     10324 non-null category\n",
      "del_date_recorded_mn     10324 non-null category\n",
      "del_date_recorded_dy     10324 non-null category\n",
      "dtypes: category(15), object(23)\n",
      "memory usage: 2.0+ MB\n"
     ]
    }
   ],
   "source": [
    "# Make the lists first, thank you, list comprehension!!\n",
    "# Refactor code later to function, can automate which time-period gets added\n",
    "datecolumns =['pq_date_new', 'po_date_new', 'del_date_scheduled'\n",
    "              , 'del_date_client','del_date_recorded']\n",
    "lists_yr=[list(ddate[c].dt.year) for c in datecolumns] # Use .dt function!!\n",
    "lists_mn=[list(ddate[c].dt.month) for c in datecolumns] # Use .dt function!!\n",
    "lists_dy=[list(ddate[c].dt.day) for c in datecolumns] # Use .dt function!!\n",
    "print(len(lists_yr), len(lists_mn),len(lists_dy))\n",
    "print(len(lists_yr[0]), len(lists_mn[2]),len(lists_dy[4]))\n",
    "# Remember to cast these as categories later! \n",
    "date_list_of_lists = [lists_yr, lists_mn, lists_dy]\n",
    "date_suffix = ['yr', 'mn', 'dy']\n",
    "for c in datecolumns:\n",
    "    j = datecolumns.index(c)\n",
    "    for i in range(len(date_list_of_lists)):\n",
    "        name = str(c)+str(\"_\")+str(date_suffix[i])\n",
    "        # Make sure to convert to categorical\n",
    "        dobject[name] = pd.Categorical(date_list_of_lists[i][j])\n",
    "print(dobject.shape,dobject.columns)\n",
    "dobject.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5 5 5\n",
      "10324 10324 10324\n",
      "(10324, 53) Index(['proj_code', 'pq_no', 'po_no', 'ship_no', 'country', 'mngr',\n",
      "       'fulfill_via', 'vendor_terms', 'ship_mode', 'pq_date', 'po_date',\n",
      "       'prod_grp', 'sub_class', 'vendor', 'itm_desc', 'molecule_test', 'brand',\n",
      "       'dosage', 'dosage_form', 'factory', 'first_line', 'weight',\n",
      "       'freight_cost', 'pq_date_new_yr', 'pq_date_new_mn', 'pq_date_new_dy',\n",
      "       'po_date_new_yr', 'po_date_new_mn', 'po_date_new_dy',\n",
      "       'del_date_scheduled_yr', 'del_date_scheduled_mn',\n",
      "       'del_date_scheduled_dy', 'del_date_client_yr', 'del_date_client_mn',\n",
      "       'del_date_client_dy', 'del_date_recorded_yr', 'del_date_recorded_mn',\n",
      "       'del_date_recorded_dy', 'pq_date_new_wd', 'pq_date_new_wk',\n",
      "       'pq_date_new_qt', 'po_date_new_wd', 'po_date_new_wk', 'po_date_new_qt',\n",
      "       'del_date_scheduled_wd', 'del_date_scheduled_wk',\n",
      "       'del_date_scheduled_qt', 'del_date_client_wd', 'del_date_client_wk',\n",
      "       'del_date_client_qt', 'del_date_recorded_wd', 'del_date_recorded_wk',\n",
      "       'del_date_recorded_qt'],\n",
      "      dtype='object')\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 10324 entries, 0 to 10323\n",
      "Data columns (total 53 columns):\n",
      "proj_code                10324 non-null object\n",
      "pq_no                    10324 non-null object\n",
      "po_no                    10324 non-null object\n",
      "ship_no                  10324 non-null object\n",
      "country                  10324 non-null object\n",
      "mngr                     10324 non-null object\n",
      "fulfill_via              10324 non-null object\n",
      "vendor_terms             10324 non-null object\n",
      "ship_mode                10324 non-null object\n",
      "pq_date                  10324 non-null object\n",
      "po_date                  10324 non-null object\n",
      "prod_grp                 10324 non-null object\n",
      "sub_class                10324 non-null object\n",
      "vendor                   10324 non-null object\n",
      "itm_desc                 10324 non-null object\n",
      "molecule_test            10324 non-null object\n",
      "brand                    10324 non-null object\n",
      "dosage                   10324 non-null object\n",
      "dosage_form              10324 non-null object\n",
      "factory                  10324 non-null object\n",
      "first_line               10324 non-null object\n",
      "weight                   10324 non-null object\n",
      "freight_cost             10324 non-null object\n",
      "pq_date_new_yr           10324 non-null category\n",
      "pq_date_new_mn           10324 non-null category\n",
      "pq_date_new_dy           10324 non-null category\n",
      "po_date_new_yr           10324 non-null category\n",
      "po_date_new_mn           10324 non-null category\n",
      "po_date_new_dy           10324 non-null category\n",
      "del_date_scheduled_yr    10324 non-null category\n",
      "del_date_scheduled_mn    10324 non-null category\n",
      "del_date_scheduled_dy    10324 non-null category\n",
      "del_date_client_yr       10324 non-null category\n",
      "del_date_client_mn       10324 non-null category\n",
      "del_date_client_dy       10324 non-null category\n",
      "del_date_recorded_yr     10324 non-null category\n",
      "del_date_recorded_mn     10324 non-null category\n",
      "del_date_recorded_dy     10324 non-null category\n",
      "pq_date_new_wd           10324 non-null category\n",
      "pq_date_new_wk           10324 non-null category\n",
      "pq_date_new_qt           10324 non-null category\n",
      "po_date_new_wd           10324 non-null category\n",
      "po_date_new_wk           10324 non-null category\n",
      "po_date_new_qt           10324 non-null category\n",
      "del_date_scheduled_wd    10324 non-null category\n",
      "del_date_scheduled_wk    10324 non-null category\n",
      "del_date_scheduled_qt    10324 non-null category\n",
      "del_date_client_wd       10324 non-null category\n",
      "del_date_client_wk       10324 non-null category\n",
      "del_date_client_qt       10324 non-null category\n",
      "del_date_recorded_wd     10324 non-null category\n",
      "del_date_recorded_wk     10324 non-null category\n",
      "del_date_recorded_qt     10324 non-null category\n",
      "dtypes: category(30), object(23)\n",
      "memory usage: 2.2+ MB\n"
     ]
    }
   ],
   "source": [
    "# Make businessday, monthend, and quarterly features\n",
    "datecolumns =['pq_date_new', 'po_date_new', 'del_date_scheduled'\n",
    "              , 'del_date_client','del_date_recorded']\n",
    "lists_wd=[list(ddate[c].dt.weekday) for c in datecolumns] # Use .dt function!!\n",
    "lists_wk=[list(ddate[c].dt.weekofyear) for c in datecolumns] # Use .dt function!!\n",
    "lists_qt=[list(ddate[c].dt.quarter) for c in datecolumns] # Use .dt function!!\n",
    "print(len(lists_wd), len(lists_wk),len(lists_qt))\n",
    "print(len(lists_wd[0]), len(lists_wk[2]),len(lists_qt[4]))\n",
    "\n",
    "# Remember to cast these as categories later! \n",
    "date_list_of_lists = [lists_wd, lists_wk, lists_qt]\n",
    "date_suffix = ['wd', 'wk', 'qt']\n",
    "for c in datecolumns:\n",
    "    j = datecolumns.index(c)\n",
    "    for i in range(len(date_list_of_lists)):\n",
    "        name = str(c)+str(\"_\")+str(date_suffix[i])\n",
    "        # Make sure to convert to categorical\n",
    "        dobject[name] = pd.Categorical(date_list_of_lists[i][j])\n",
    "print(dobject.shape,dobject.columns)\n",
    "dobject.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Numeric\n",
    "#### *Integers and Floats*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index(['id', 'units', 'ln_itm_qty'], dtype='object') \n",
      " Index(['ln_itm_val', 'pk_price', 'unit_price', 'line_itm_ins', 'ln_itm_weight',\n",
      "       'ln_itm_freight_cost'],\n",
      "      dtype='object') \n",
      " dict_keys(['float64', 'int64', 'datetime64[ns]', 'object'])\n"
     ]
    }
   ],
   "source": [
    "### Numerical Columns\n",
    "print(dint.columns,\"\\n\", dfloat.columns,\"\\n\",blocks.keys())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(10324, 9)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>units</th>\n",
       "      <th>ln_itm_qty</th>\n",
       "      <th>ln_itm_val</th>\n",
       "      <th>pk_price</th>\n",
       "      <th>unit_price</th>\n",
       "      <th>line_itm_ins</th>\n",
       "      <th>ln_itm_weight</th>\n",
       "      <th>ln_itm_freight_cost</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>30</td>\n",
       "      <td>19</td>\n",
       "      <td>551.0</td>\n",
       "      <td>29.00</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>13.000000</td>\n",
       "      <td>819.935000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>240</td>\n",
       "      <td>1000</td>\n",
       "      <td>6200.0</td>\n",
       "      <td>6.20</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>368.830071</td>\n",
       "      <td>2335.540207</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>100</td>\n",
       "      <td>500</td>\n",
       "      <td>40000.0</td>\n",
       "      <td>80.00</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>10671.152042</td>\n",
       "      <td>92778.636389</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>15</td>\n",
       "      <td>60</td>\n",
       "      <td>31920</td>\n",
       "      <td>127360.8</td>\n",
       "      <td>3.99</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>1916.285060</td>\n",
       "      <td>856061.478787</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>16</td>\n",
       "      <td>60</td>\n",
       "      <td>38000</td>\n",
       "      <td>121600.0</td>\n",
       "      <td>3.20</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>3159.972544</td>\n",
       "      <td>73767.191447</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id  units  ln_itm_qty  ln_itm_val  pk_price  unit_price  line_itm_ins  \\\n",
       "0   1     30          19       551.0     29.00        0.97       0.00245   \n",
       "1   3    240        1000      6200.0      6.20        0.03       0.00245   \n",
       "2   4    100         500     40000.0     80.00        0.80       0.00245   \n",
       "3  15     60       31920    127360.8      3.99        0.07       0.00245   \n",
       "4  16     60       38000    121600.0      3.20        0.05       0.00245   \n",
       "\n",
       "   ln_itm_weight  ln_itm_freight_cost  \n",
       "0      13.000000           819.935000  \n",
       "1     368.830071          2335.540207  \n",
       "2   10671.152042         92778.636389  \n",
       "3    1916.285060        856061.478787  \n",
       "4    3159.972544         73767.191447  "
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Join dint and dfloat in to dnum?\n",
    "dnum = pd.concat([dint, dfloat], axis=1)\n",
    "print(dnum.shape); dnum.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Numeric\n",
    "#### *Counts, Sums, Proportions, and Measures of Central Tendency*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(219, 17), (352, 17), (278, 17), (427, 17), (265, 17)]\n",
      "\n",
      "------\n",
      " [Index(['country', 'del_date_scheduled_yr', 'country_qtysum',\n",
      "       'country_qtycount', 'country_qtymean', 'country_valsum',\n",
      "       'country_valcount', 'country_valmean', 'country_inssum',\n",
      "       'country_inscount', 'country_insmean', 'country_weightsum',\n",
      "       'country_weightcount', 'country_weightmean', 'country_costsum',\n",
      "       'country_costcount', 'country_costmean'],\n",
      "      dtype='object'), Index(['factory', 'del_date_scheduled_yr', 'factory_qtysum',\n",
      "       'factory_qtycount', 'factory_qtymean', 'factory_valsum',\n",
      "       'factory_valcount', 'factory_valmean', 'factory_inssum',\n",
      "       'factory_inscount', 'factory_insmean', 'factory_weightsum',\n",
      "       'factory_weightcount', 'factory_weightmean', 'factory_costsum',\n",
      "       'factory_costcount', 'factory_costmean'],\n",
      "      dtype='object'), Index(['vendor', 'del_date_scheduled_yr', 'vendor_qtysum', 'vendor_qtycount',\n",
      "       'vendor_qtymean', 'vendor_valsum', 'vendor_valcount', 'vendor_valmean',\n",
      "       'vendor_inssum', 'vendor_inscount', 'vendor_insmean',\n",
      "       'vendor_weightsum', 'vendor_weightcount', 'vendor_weightmean',\n",
      "       'vendor_costsum', 'vendor_costcount', 'vendor_costmean'],\n",
      "      dtype='object'), Index(['molecule_test', 'del_date_scheduled_yr', 'molecule_test_qtysum',\n",
      "       'molecule_test_qtycount', 'molecule_test_qtymean',\n",
      "       'molecule_test_valsum', 'molecule_test_valcount',\n",
      "       'molecule_test_valmean', 'molecule_test_inssum',\n",
      "       'molecule_test_inscount', 'molecule_test_insmean',\n",
      "       'molecule_test_weightsum', 'molecule_test_weightcount',\n",
      "       'molecule_test_weightmean', 'molecule_test_costsum',\n",
      "       'molecule_test_costcount', 'molecule_test_costmean'],\n",
      "      dtype='object'), Index(['brand', 'del_date_scheduled_yr', 'brand_qtysum', 'brand_qtycount',\n",
      "       'brand_qtymean', 'brand_valsum', 'brand_valcount', 'brand_valmean',\n",
      "       'brand_inssum', 'brand_inscount', 'brand_insmean', 'brand_weightsum',\n",
      "       'brand_weightcount', 'brand_weightmean', 'brand_costsum',\n",
      "       'brand_costcount', 'brand_costmean'],\n",
      "      dtype='object')]\n",
      "0\n",
      "1\n",
      "2\n",
      "3\n",
      "4\n"
     ]
    }
   ],
   "source": [
    "entities = ['country'  # high-volume countries? high freight cost?\n",
    "            , 'factory' # slow factories, small factories? high freight cost?\n",
    "            , 'vendor' # incompetent vendors? high freight cost?\n",
    "            , 'molecule_test' # trade hurdles? high freight cost?\n",
    "           , 'brand' # shipment quotas? brand troubles?\n",
    "           ] \n",
    "# Make list of dfs to be populated\n",
    "stats_dfs = [None,None,None,None,None]\n",
    "# Must do this by year to allow for dynamic measures\n",
    "n_measures = ['ln_itm_qty', 'ln_itm_val', 'line_itm_ins'\n",
    "                , 'ln_itm_weight', 'ln_itm_freight_cost']\n",
    "joins =[None,None,None,None,None]\n",
    "# Populate the grouped stats dfs\n",
    "for i in range(len(entities)):\n",
    "    stats_dfs[i] = pd.concat([dobject,dnum[n_measures]], axis=1).groupby(\n",
    "        [entities[i], 'del_date_scheduled_yr']).agg(['sum', 'count', 'mean'])\n",
    "    stats_dfs[i].columns = [entities[i]+\"_\"+str(x[0]+x[1]).split(\"_\")[-1] for x in stats_dfs[i].columns]\n",
    "    stats_dfs[i].reset_index(inplace=True)    \n",
    "\n",
    "print([x.shape for x in stats_dfs])\n",
    "print(\"\\n------\\n\",[x.columns for x in stats_dfs])\n",
    "\n",
    "for i in range(len(entities)):\n",
    "    print(i)\n",
    "    a= dobject[entities+['del_date_scheduled_yr']].copy()\n",
    "    joins[i] = pd.merge(a, stats_dfs[i],\n",
    "            left_on=[entities[i],'del_date_scheduled_yr']\n",
    "                 , right_on=[entities[i],'del_date_scheduled_yr'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### *Merge with the numerical columns*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>units</th>\n",
       "      <th>ln_itm_qty</th>\n",
       "      <th>ln_itm_val</th>\n",
       "      <th>pk_price</th>\n",
       "      <th>unit_price</th>\n",
       "      <th>line_itm_ins</th>\n",
       "      <th>ln_itm_weight</th>\n",
       "      <th>ln_itm_freight_cost</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>30</td>\n",
       "      <td>19</td>\n",
       "      <td>551.0</td>\n",
       "      <td>29.00</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>13.000000</td>\n",
       "      <td>819.935000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>240</td>\n",
       "      <td>1000</td>\n",
       "      <td>6200.0</td>\n",
       "      <td>6.20</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>368.830071</td>\n",
       "      <td>2335.540207</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>100</td>\n",
       "      <td>500</td>\n",
       "      <td>40000.0</td>\n",
       "      <td>80.00</td>\n",
       "      <td>0.80</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>10671.152042</td>\n",
       "      <td>92778.636389</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>15</td>\n",
       "      <td>60</td>\n",
       "      <td>31920</td>\n",
       "      <td>127360.8</td>\n",
       "      <td>3.99</td>\n",
       "      <td>0.07</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>1916.285060</td>\n",
       "      <td>856061.478787</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>16</td>\n",
       "      <td>60</td>\n",
       "      <td>38000</td>\n",
       "      <td>121600.0</td>\n",
       "      <td>3.20</td>\n",
       "      <td>0.05</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>3159.972544</td>\n",
       "      <td>73767.191447</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id  units  ln_itm_qty  ln_itm_val  pk_price  unit_price  line_itm_ins  \\\n",
       "0   1     30          19       551.0     29.00        0.97       0.00245   \n",
       "1   3    240        1000      6200.0      6.20        0.03       0.00245   \n",
       "2   4    100         500     40000.0     80.00        0.80       0.00245   \n",
       "3  15     60       31920    127360.8      3.99        0.07       0.00245   \n",
       "4  16     60       38000    121600.0      3.20        0.05       0.00245   \n",
       "\n",
       "   ln_itm_weight  ln_itm_freight_cost  \n",
       "0      13.000000           819.935000  \n",
       "1     368.830071          2335.540207  \n",
       "2   10671.152042         92778.636389  \n",
       "3    1916.285060        856061.478787  \n",
       "4    3159.972544         73767.191447  "
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dnum.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "joined shape:  (10324, 105)\n",
      "joined shape:  (10324, 75)\n",
      "joined columns:  ['country_qtysum', 'country_qtycount', 'country_qtymean', 'country_valsum', 'country_valcount', 'country_valmean', 'country_inssum', 'country_inscount', 'country_insmean', 'country_weightsum', 'country_weightcount', 'country_weightmean', 'country_costsum', 'country_costcount', 'country_costmean', 'factory_qtysum', 'factory_qtycount', 'factory_qtymean', 'factory_valsum', 'factory_valcount', 'factory_valmean', 'factory_inssum', 'factory_inscount', 'factory_insmean', 'factory_weightsum', 'factory_weightcount', 'factory_weightmean', 'factory_costsum', 'factory_costcount', 'factory_costmean', 'vendor_qtysum', 'vendor_qtycount', 'vendor_qtymean', 'vendor_valsum', 'vendor_valcount', 'vendor_valmean', 'vendor_inssum', 'vendor_inscount', 'vendor_insmean', 'vendor_weightsum', 'vendor_weightcount', 'vendor_weightmean', 'vendor_costsum', 'vendor_costcount', 'vendor_costmean', 'molecule_test_qtysum', 'molecule_test_qtycount', 'molecule_test_qtymean', 'molecule_test_valsum', 'molecule_test_valcount', 'molecule_test_valmean', 'molecule_test_inssum', 'molecule_test_inscount', 'molecule_test_insmean', 'molecule_test_weightsum', 'molecule_test_weightcount', 'molecule_test_weightmean', 'molecule_test_costsum', 'molecule_test_costcount', 'molecule_test_costmean', 'brand_qtysum', 'brand_qtycount', 'brand_qtymean', 'brand_valsum', 'brand_valcount', 'brand_valmean', 'brand_inssum', 'brand_inscount', 'brand_insmean', 'brand_weightsum', 'brand_weightcount', 'brand_weightmean', 'brand_costsum', 'brand_costcount', 'brand_costmean']\n"
     ]
    }
   ],
   "source": [
    "joined = pd.concat(joins, axis=1)\n",
    "print(\"joined shape: \", joined.shape)\n",
    "joined=joined.drop(entities+['del_date_scheduled_yr'], axis=1)\n",
    "print(\"joined shape: \", joined.shape)\n",
    "print(\"joined columns: \", joined.columns.tolist())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Now merge to make numerical columns for each entity\n",
    "dnum_country, dnum_factory, dnum_vendor, dnum_molecule_test, dnum_brand = joins"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Categorical\n",
    "#### *Weight captured seperately, shipment configuration*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "No     8817\n",
       "Yes    1507\n",
       "Name: weight_captured_seperately, dtype: int64"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Shipment configuration\n",
    "dobject['ship_config'] = None\n",
    "ship_list = [(top_itms.index,\"bundled-topline\"),(bottom_itms.index,\"bundled-bottom\") \n",
    ", (single_itms.index,\"single\") ,(sep_weight_single.index, \"single-seperate-weight\")\n",
    "            ,(sep_weight_bundled.index, \"bundled-seperate-weight\")]\n",
    "for k, v in ship_list:\n",
    "    dobject.loc[list(k),'ship_config'] = v \n",
    "dobject['ship_config'].value_counts()\n",
    "\n",
    "# Weight Captured Seperately\n",
    "dobject['weight_captured_seperately'] = \"No\"\n",
    "sep_idx = list(sep_weight_single.index) + list(sep_weight_bundled.index)\n",
    "dobject.loc[sep_idx, 'weight_captured_seperately'] = \"Yes\"\n",
    "dobject['weight_captured_seperately'].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Categorical\n",
    "#### *Freight cost invoicing and cost inclusive*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "No     8882\n",
       "Yes    1442\n",
       "Name: freight_in_cmdty_cost, dtype: int64"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Freight_cost Invoiced Seperately\n",
    "dobject['freight_invoiced_seperately'] = \"No\"\n",
    "is_idx = list(dobject[dobject.freight_cost=='Invoiced Separately'].index)\n",
    "dobject.loc[is_idx, 'freight_invoiced_seperately'] = \"Yes\"\n",
    "dobject['freight_invoiced_seperately'].value_counts()\n",
    "#  or included in commodity cost\n",
    "dobject['freight_in_cmdty_cost'] = \"No\"\n",
    "ic_idx = list(dobject[dobject.freight_cost=='Freight Included in Commodity Cost'].index)\n",
    "dobject.loc[ic_idx, 'freight_in_cmdty_cost'] = \"Yes\"\n",
    "dobject['freight_in_cmdty_cost'].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Categorical\n",
    "#### *Target/predicted variable: Delayed*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Target variable: ***Delayed***\n",
    "    \n",
    "- Was the product delayed for delivery or on-time?\n",
    "- Value of 1 if delivery_delay_time>0, 0 otherwise\n",
    "    \n",
    "**Other interesting variables:**\n",
    "\n",
    "- *anticipated_lead_time* \n",
    "\n",
    "    - what is the anticipated time from order to delivery ?\n",
    "    - del_date_scheduled - po_date\n",
    "\n",
    "- *actual_lead_time* \n",
    "\n",
    "    - what is the anticipated time from order to delivery ?\n",
    "    - del_date_client - po_date\n",
    "\n",
    "- *delivery_delay_time*\n",
    "\n",
    "    - what is the delay or advance delivery, difference between anticipated delivery and actual?\n",
    "    - del_date_client - del_datescheduled\n",
    "    - used to calculate the main variable, delayed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 10324 entries, 0 to 10323\n",
      "Data columns (total 7 columns):\n",
      "del_date_scheduled    10324 non-null datetime64[ns]\n",
      "del_date_client       10324 non-null datetime64[ns]\n",
      "del_date_recorded     10324 non-null datetime64[ns]\n",
      "pq_date               10324 non-null datetime64[ns]\n",
      "po_date               10324 non-null datetime64[ns]\n",
      "po_date_new           10324 non-null datetime64[ns]\n",
      "pq_date_new           10324 non-null datetime64[ns]\n",
      "dtypes: datetime64[ns](7)\n",
      "memory usage: 965.2 KB\n"
     ]
    }
   ],
   "source": [
    "ddate.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                       10324\n",
       "mean     -7 days +23:26:06.369624\n",
       "std       27 days 05:36:26.499569\n",
       "min           -372 days +00:00:00\n",
       "25%             -3 days +00:00:00\n",
       "50%               0 days 00:00:00\n",
       "75%               0 days 00:00:00\n",
       "max             192 days 00:00:00\n",
       "Name: delivery_delay_time, dtype: object"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#### Engineer the features to calculate the final target, DELAYED:\n",
    "ddate['anticipated_lead_time'] = ddate.del_date_scheduled.copy() - ddate.po_date_new.copy()   \n",
    "ddate['actual_lead_time'] = ddate.del_date_client.copy() - ddate.po_date_new.copy()\n",
    "ddate['delivery_delay_time'] = ddate.del_date_client.copy() - ddate.del_date_scheduled.copy()\n",
    "ddate['delivery_delay_time'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>del_date_scheduled</th>\n",
       "      <th>del_date_client</th>\n",
       "      <th>del_date_recorded</th>\n",
       "      <th>pq_date</th>\n",
       "      <th>po_date</th>\n",
       "      <th>po_date_new</th>\n",
       "      <th>pq_date_new</th>\n",
       "      <th>anticipated_lead_time</th>\n",
       "      <th>actual_lead_time</th>\n",
       "      <th>delivery_delay_time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>2007-08-13</td>\n",
       "      <td>2007-08-21</td>\n",
       "      <td>2007-08-21</td>\n",
       "      <td>1980-01-01</td>\n",
       "      <td>2007-07-26</td>\n",
       "      <td>2007-07-26 00:00:00.000000</td>\n",
       "      <td>2007-02-03 18:09:22.377600</td>\n",
       "      <td>18 days 00:00:00</td>\n",
       "      <td>26 days 00:00:00</td>\n",
       "      <td>8 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>72</th>\n",
       "      <td>2009-03-10</td>\n",
       "      <td>2009-04-08</td>\n",
       "      <td>2009-04-08</td>\n",
       "      <td>1980-01-01</td>\n",
       "      <td>2009-03-06</td>\n",
       "      <td>2009-03-06 00:00:00.000000</td>\n",
       "      <td>2008-09-14 18:09:22.377600</td>\n",
       "      <td>4 days 00:00:00</td>\n",
       "      <td>33 days 00:00:00</td>\n",
       "      <td>29 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>122</th>\n",
       "      <td>2009-06-12</td>\n",
       "      <td>2009-07-10</td>\n",
       "      <td>2009-07-10</td>\n",
       "      <td>1980-01-01</td>\n",
       "      <td>2009-05-27</td>\n",
       "      <td>2009-05-27 00:00:00.000000</td>\n",
       "      <td>2008-12-05 18:09:22.377600</td>\n",
       "      <td>16 days 00:00:00</td>\n",
       "      <td>44 days 00:00:00</td>\n",
       "      <td>28 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>144</th>\n",
       "      <td>2007-03-15</td>\n",
       "      <td>2007-03-30</td>\n",
       "      <td>2007-03-30</td>\n",
       "      <td>1980-01-01</td>\n",
       "      <td>1900-01-01</td>\n",
       "      <td>2007-02-04 14:24:00.000000</td>\n",
       "      <td>2006-08-16 08:33:22.377600</td>\n",
       "      <td>38 days 09:36:00</td>\n",
       "      <td>53 days 09:36:00</td>\n",
       "      <td>15 days</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>202</th>\n",
       "      <td>2008-07-10</td>\n",
       "      <td>2008-07-14</td>\n",
       "      <td>2008-07-14</td>\n",
       "      <td>1980-01-01</td>\n",
       "      <td>1900-01-01</td>\n",
       "      <td>2008-05-24 16:00:00.028800</td>\n",
       "      <td>2007-12-04 10:09:22.406400</td>\n",
       "      <td>46 days 07:59:59.971200</td>\n",
       "      <td>50 days 07:59:59.971200</td>\n",
       "      <td>4 days</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    del_date_scheduled del_date_client del_date_recorded    pq_date  \\\n",
       "24          2007-08-13      2007-08-21        2007-08-21 1980-01-01   \n",
       "72          2009-03-10      2009-04-08        2009-04-08 1980-01-01   \n",
       "122         2009-06-12      2009-07-10        2009-07-10 1980-01-01   \n",
       "144         2007-03-15      2007-03-30        2007-03-30 1980-01-01   \n",
       "202         2008-07-10      2008-07-14        2008-07-14 1980-01-01   \n",
       "\n",
       "       po_date                po_date_new                pq_date_new  \\\n",
       "24  2007-07-26 2007-07-26 00:00:00.000000 2007-02-03 18:09:22.377600   \n",
       "72  2009-03-06 2009-03-06 00:00:00.000000 2008-09-14 18:09:22.377600   \n",
       "122 2009-05-27 2009-05-27 00:00:00.000000 2008-12-05 18:09:22.377600   \n",
       "144 1900-01-01 2007-02-04 14:24:00.000000 2006-08-16 08:33:22.377600   \n",
       "202 1900-01-01 2008-05-24 16:00:00.028800 2007-12-04 10:09:22.406400   \n",
       "\n",
       "      anticipated_lead_time        actual_lead_time delivery_delay_time  \n",
       "24         18 days 00:00:00        26 days 00:00:00              8 days  \n",
       "72          4 days 00:00:00        33 days 00:00:00             29 days  \n",
       "122        16 days 00:00:00        44 days 00:00:00             28 days  \n",
       "144        38 days 09:36:00        53 days 09:36:00             15 days  \n",
       "202 46 days 07:59:59.971200 50 days 07:59:59.971200              4 days  "
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ddate[ddate.delivery_delay_time> '0 days'].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1c1bbf98>"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nQXAZ/x8V2z3h7USoHwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x8d63f60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Checking out the delay column..\n",
    "delay=pd.to_numeric(ddate['delivery_delay_time'])/(1e9*3600*24)\n",
    "delay.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "----\n",
      "New delayed column:  False    9138\n",
      "True     1186\n",
      "Name: delayed, dtype: int64\n",
      "----\n",
      "Average % of delayed deliveries:  0.114877954281\n"
     ]
    }
   ],
   "source": [
    "#### Engineer the categorical targets:\n",
    "dobject['delayed'] = ddate['delivery_delay_time']>'0 days'\n",
    "print(\"----\\nNew delayed column: \", dobject.delayed.value_counts())\n",
    "print(\"----\\nAverage % of delayed deliveries: \",dobject.delayed.sum()/len(dobject))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Time Series Features\n",
    "#### *Lagging, rolling statistics, and cumulative*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Cumulative statistics, vendor-item level"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>delay_cumsum</th>\n",
       "      <th>delay_cummin</th>\n",
       "      <th>del_del_time_cumsum</th>\n",
       "      <th>days_delay_cummin</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>522</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>412</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>129</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2480</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      delay_cumsum  delay_cummin  del_del_time_cumsum  days_delay_cummin\n",
       "522            NaN           NaN                  NaN                NaN\n",
       "412            0.0           0.0                  0.0                0.0\n",
       "0              0.0           0.0                  0.0                0.0\n",
       "129            0.0           0.0                  0.0                0.0\n",
       "2480           0.0           0.0                  0.0                0.0"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#- lag variable: last delivery outcome, last delivery days delay\n",
    "# merge ddate with delayed and delivery_delay_time\n",
    "# country-item, vendor-item, factory-item\n",
    "df_trend = pd.concat([ddate[['del_date_client','delivery_delay_time']]\n",
    "                      , dobject[['itm_desc','vendor', 'factory', 'delayed']]], axis=1)\n",
    "\n",
    "df_trend['delayed'] = df_trend.delayed.map({True:1, False:0})\n",
    "df_trend['delivery_delay_time'] = df_trend.delivery_delay_time.dt.days\n",
    "# Group and sort to get order\n",
    "dgrp = df_trend.sort_values(by=['del_date_client', 'vendor', 'itm_desc']\n",
    "        , ascending =True)[['del_date_client', 'vendor'\n",
    "                            , 'itm_desc', 'delayed', 'delivery_delay_time']].groupby(\n",
    "    ['del_date_client', 'vendor', 'itm_desc'])\n",
    "#df_trend, make sure to shift to avoid collinearity!\n",
    "dcum = dgrp.agg(['cumsum', 'cummin']).shift(+1)\n",
    "dcum.columns = ['delay_cumsum', 'delay_cummin', 'del_del_time_cumsum', 'days_delay_cummin']\n",
    "dcum.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Rolling Statistics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>delay_rmean</th>\n",
       "      <th>days_delay_rmean</th>\n",
       "      <th>delay_cumsum</th>\n",
       "      <th>delay_cummin</th>\n",
       "      <th>del_del_time_cumsum</th>\n",
       "      <th>days_delay_cummin</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   delay_rmean  days_delay_rmean  delay_cumsum  delay_cummin  \\\n",
       "0          NaN               NaN           0.0           0.0   \n",
       "1          0.0               0.0           0.0           0.0   \n",
       "2          NaN               NaN           0.0           0.0   \n",
       "3          NaN               NaN           0.0           0.0   \n",
       "4          NaN               NaN           0.0           0.0   \n",
       "\n",
       "   del_del_time_cumsum  days_delay_cummin  \n",
       "0                  0.0                0.0  \n",
       "1                  0.0                0.0  \n",
       "2                  0.0                0.0  \n",
       "3                  0.0                0.0  \n",
       "4                  0.0                0.0  "
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#- rolling sum of delays to date, rolling mean of days delayed\n",
    "#dcum.head() Sort again for this rolling stats. Shift to avoid multicollinearity\n",
    "dsorted = df_trend.sort_values(by=['del_date_client', 'vendor', 'itm_desc'])\n",
    "dsorted['delay_rmean'] = pd.rolling_mean(dsorted.delayed, window=21).shift(+1)\n",
    "dsorted['days_delay_rmean'] = pd.rolling_mean(dsorted.delivery_delay_time, window=21)\n",
    "# Merge the dfs together\n",
    "dtrend = pd.merge(dsorted, dcum, how = 'inner', right_index= True, left_index= True)\n",
    "# Merge back together and make sure idex is sorted for future concatenation\n",
    "dtrend = dtrend.drop(['del_date_client', 'delivery_delay_time', 'itm_desc'\n",
    "                      , 'vendor', 'factory', 'delayed'], axis=1).sort_index()\n",
    "dtrend.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "delay_rmean            0\n",
       "days_delay_rmean       0\n",
       "delay_cumsum           0\n",
       "delay_cummin           0\n",
       "del_del_time_cumsum    0\n",
       "days_delay_cummin      0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dtrend.fillna(method='bfill', axis=0, inplace=True)\n",
    "dtrend.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Feature Creation\n",
    "### External features from other sources"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### *Fragile State Index (FSI) - country stability*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2099, 3)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fsi</th>\n",
       "      <th>year</th>\n",
       "      <th>country</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>112.3</td>\n",
       "      <td>2006</td>\n",
       "      <td>Sudan</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>110.1</td>\n",
       "      <td>2006</td>\n",
       "      <td>Congo Democratic Republic</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>109.2</td>\n",
       "      <td>2006</td>\n",
       "      <td>Cote d'Ivoire</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>109.0</td>\n",
       "      <td>2006</td>\n",
       "      <td>Iraq</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>108.9</td>\n",
       "      <td>2006</td>\n",
       "      <td>Zimbabwe</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     fsi  year                    country\n",
       "0  112.3  2006                      Sudan\n",
       "1  110.1  2006  Congo Democratic Republic\n",
       "2  109.2  2006              Cote d'Ivoire\n",
       "3  109.0  2006                       Iraq\n",
       "4  108.9  2006                   Zimbabwe"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fragility_index = mhf.generate_country_stability_features() #fsi index\n",
    "print(fragility_index.shape)\n",
    "fragility_index.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### *Logistics Performance Indices (LPI)*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "160\n",
      "shape ct:  (160, 36)\n",
      "missing_cols: 42\n",
      "(1760, 9)\n",
      "lpi describe:             customs        infra    intl_ship  logistic_qlty          lpi  \\\n",
      "count  1760.000000  1760.000000  1760.000000    1760.000000  1760.000000   \n",
      "mean      2.652534     2.702813     2.828706       2.799834     2.859719   \n",
      "std       0.567318     0.660138     0.487789       0.585656     0.550927   \n",
      "min       1.111111     1.100000     1.222220       1.250000     1.211669   \n",
      "25%       2.244128     2.233903     2.496660       2.377321     2.464608   \n",
      "50%       2.579769     2.599128     2.793681       2.727269     2.764329   \n",
      "75%       2.912981     3.031271     3.123747       3.077599     3.141938   \n",
      "max       4.207790     4.439356     4.235000       4.315699     4.225967   \n",
      "\n",
      "        timeliness  track_trace  \n",
      "count  1760.000000  1760.000000  \n",
      "mean      3.289748     2.875927  \n",
      "std       0.553853     0.600903  \n",
      "min       1.375000     1.000000  \n",
      "25%       2.893916     2.451238  \n",
      "50%       3.255500     2.810145  \n",
      "75%       3.647333     3.222235  \n",
      "max       4.795714     4.377678  \n"
     ]
    }
   ],
   "source": [
    "logistics_indices = mhf.generate_country_logistics_features() #lpi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data1 shape: 160 data2 shape: 178\n",
      "(196, 2)\n",
      "36 18\n",
      "In data2 but not in data1: ['Congo Democratic Republic', \"Cote d'Ivoire\", 'North Korea', 'Sierra Leone', 'Yemen', 'Uganda', 'Egypt', 'Syria', 'Laos', 'Russia', 'Guinea Bissau', 'Iran', 'Venezuela', 'Israel and West Bank', 'Morocco', 'Macedonia', 'Gambia', 'Albania', 'South Korea', 'Timor-Leste', 'Congo Republic', 'Swaziland', 'Cape Verde', 'Sao Tome and Principe', 'Suriname', 'Samoa', 'Micronesia', 'Grenada', 'Seychelles', 'Brunei Darussalam', 'Belize', 'Trinidad and Tobago', 'Antigua and Barbuda', 'Bahamas', 'Barbados', 'South Sudan'] \n",
      "----\n",
      "In data1 but not in data2: ['Bahamas, The', 'Congo, Dem. Rep.', 'Congo, Rep.', \"Côte d'Ivoire\", 'Egypt, Arab Rep.', 'Gambia, The', 'Guinea-Bissau', 'Hong Kong SAR, China', 'Israel', 'Korea, Rep.', 'Lao PDR', 'Macedonia, FYR', 'Russian Federation', 'Sco Tomi and Principe', 'Syrian Arab Republic', 'Taiwan', 'Venezuela, RB', 'Yemen, Rep.']\n"
     ]
    }
   ],
   "source": [
    "lpi_fsi_comparison = mhf.compare_columns(logistics_indices\n",
    "                    , fragility_index,'country','country') # compare country colums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Country names to harmonize:  ['Afghanistan' 'Algeria' 'Angola' 'Argentina' 'Armenia' 'Australia'\n",
      " 'Austria' 'Azerbaijan' 'Bahamas, The' 'Bahrain' 'Bangladesh' 'Belarus'\n",
      " 'Belgium' 'Benin' 'Bhutan' 'Bolivia' 'Bosnia and Herzegovina' 'Botswana'\n",
      " 'Brazil' 'Bulgaria' 'Burkina Faso' 'Burundi' 'Cambodia' 'Cameroon'\n",
      " 'Canada' 'Central African Republic' 'Chad' 'Chile' 'China' 'Colombia'\n",
      " 'Comoros' 'Congo, Dem. Rep.' 'Congo, Rep.' 'Costa Rica' 'Croatia' 'Cuba'\n",
      " 'Cyprus' 'Czech Republic' \"Côte d'Ivoire\" 'Denmark' 'Djibouti'\n",
      " 'Dominican Republic' 'Ecuador' 'Egypt, Arab Rep.' 'El Salvador'\n",
      " 'Equatorial Guinea' 'Eritrea' 'Estonia' 'Ethiopia' 'Fiji' 'Finland'\n",
      " 'France' 'Gabon' 'Gambia, The' 'Georgia' 'Germany' 'Ghana' 'Greece'\n",
      " 'Guatemala' 'Guinea' 'Guinea-Bissau' 'Guyana' 'Haiti' 'Honduras'\n",
      " 'Hong Kong SAR, China' 'Hungary' 'Iceland' 'India' 'Indonesia' 'Iraq'\n",
      " 'Ireland' 'Israel' 'Italy' 'Jamaica' 'Japan' 'Jordan' 'Kazakhstan' 'Kenya'\n",
      " 'Korea, Rep.' 'Kuwait' 'Kyrgyz Republic' 'Lao PDR' 'Latvia' 'Lebanon'\n",
      " 'Lesotho' 'Liberia' 'Libya' 'Lithuania' 'Luxembourg' 'Macedonia, FYR'\n",
      " 'Madagascar' 'Malawi' 'Malaysia' 'Maldives' 'Mali' 'Malta' 'Mauritania'\n",
      " 'Mauritius' 'Mexico' 'Moldova' 'Mongolia' 'Montenegro' 'Mozambique'\n",
      " 'Myanmar' 'Namibia' 'Nepal' 'Netherlands' 'New Zealand' 'Nicaragua'\n",
      " 'Niger' 'Nigeria' 'Norway' 'Oman' 'Pakistan' 'Panama' 'Papua New Guinea'\n",
      " 'Paraguay' 'Peru' 'Philippines' 'Poland' 'Portugal' 'Qatar' 'Romania'\n",
      " 'Russian Federation' 'Rwanda' 'Saudi Arabia' 'Sco Tomi and Principe'\n",
      " 'Senegal' 'Serbia' 'Singapore' 'Slovak Republic' 'Slovenia'\n",
      " 'Solomon Islands' 'Somalia' 'South Africa' 'Spain' 'Sri Lanka' 'Sudan'\n",
      " 'Sweden' 'Switzerland' 'Syrian Arab Republic' 'Taiwan' 'Tajikistan'\n",
      " 'Tanzania' 'Thailand' 'Togo' 'Tunisia' 'Turkey' 'Turkmenistan' 'Ukraine'\n",
      " 'United Arab Emirates' 'United Kingdom' 'United States' 'Uruguay'\n",
      " 'Uzbekistan' 'Venezuela, RB' 'Vietnam' 'Yemen, Rep.' 'Zambia' 'Zimbabwe'] ['Sudan' 'Congo Democratic Republic' \"Cote d'Ivoire\" 'Iraq' 'Zimbabwe'\n",
      " 'Chad' 'Somalia' 'Haiti' 'Pakistan' 'Afghanistan' 'Guinea' 'Liberia'\n",
      " 'Central African Republic' 'North Korea' 'Burundi' 'Sierra Leone' 'Yemen'\n",
      " 'Myanmar' 'Bangladesh' 'Nepal' 'Uganda' 'Nigeria' 'Uzbekistan' 'Rwanda'\n",
      " 'Sri Lanka' 'Ethiopia' 'Colombia' 'Kyrgyz Republic' 'Malawi'\n",
      " 'Burkina Faso' 'Egypt' 'Indonesia' 'Kenya' 'Syria'\n",
      " 'Bosnia and Herzegovina' 'Cameroon' 'Angola' 'Togo' 'Bhutan' 'Laos'\n",
      " 'Mauritania' 'Tajikistan' 'Russia' 'Niger' 'Turkmenistan' 'Guinea Bissau'\n",
      " 'Cambodia' 'Dominican Republic' 'Papua New Guinea' 'Belarus' 'Guatemala'\n",
      " 'Equatorial Guinea' 'Iran' 'Eritrea' 'Serbia' 'Bolivia' 'China' 'Moldova'\n",
      " 'Nicaragua' 'Georgia' 'Azerbaijan' 'Cuba' 'Ecuador' 'Venezuela' 'Lebanon'\n",
      " 'Zambia' 'Israel and West Bank' 'Peru' 'Philippines' 'Vietnam' 'Tanzania'\n",
      " 'Algeria' 'Saudi Arabia' 'Jordan' 'Honduras' 'Morocco' 'El Salvador'\n",
      " 'Macedonia' 'Thailand' 'Mozambique' 'Mali' 'Turkey' 'Gambia' 'Gabon'\n",
      " 'Mexico' 'Ukraine' 'Paraguay' 'Kazakhstan' 'Armenia' 'Benin' 'Namibia'\n",
      " 'Cyprus' 'India' 'Albania' 'Libya' 'Botswana' 'Jamaica' 'Malaysia'\n",
      " 'Senegal' 'Tunisia' 'Brazil' 'Romania' 'Bulgaria' 'Croatia' 'Kuwait'\n",
      " 'Ghana' 'Panama' 'Mongolia' 'Latvia' 'South Africa' 'Estonia'\n",
      " 'Slovak Republic' 'Lithuania' 'Costa Rica' 'Poland' 'Hungary' 'Oman'\n",
      " 'Mauritius' 'Czech Republic' 'Uruguay' 'Greece' 'Argentina' 'South Korea'\n",
      " 'Germany' 'Spain' 'Slovenia' 'Italy' 'United States' 'France'\n",
      " 'United Kingdom' 'Portugal' 'Chile' 'Singapore' 'Netherlands' 'Japan'\n",
      " 'Austria' 'Denmark' 'Belgium' 'Canada' 'Australia' 'New Zealand'\n",
      " 'Switzerland' 'Ireland' 'Finland' 'Sweden' 'Norway' 'Timor-Leste'\n",
      " 'Congo Republic' 'Solomon Islands' 'Swaziland' 'Lesotho' 'Cape Verde'\n",
      " 'Maldives' 'Djibouti' 'Sao Tome and Principe' 'Comoros' 'Madagascar'\n",
      " 'Fiji' 'Suriname' 'Samoa' 'Micronesia' 'Guyana' 'Grenada' 'Seychelles'\n",
      " 'Brunei Darussalam' 'Belize' 'Trinidad and Tobago' 'Antigua and Barbuda'\n",
      " 'Bahamas' 'Barbados' 'Bahrain' 'Montenegro' 'Qatar' 'United Arab Emirates'\n",
      " 'Malta' 'Luxembourg' 'Iceland' 'South Sudan']\n",
      "\n",
      "FSI Year Value counts:  2006    146\n",
      "2007    177\n",
      "2008    177\n",
      "2009    177\n",
      "2010    177\n",
      "2011    177\n",
      "2012    178\n",
      "2013    178\n",
      "2014    178\n",
      "2015    178\n",
      "2016    178\n",
      "2017    178\n",
      "Name: year, dtype: int64\n",
      "\n",
      "FSI Year Value counts:  2006    160\n",
      "2007    160\n",
      "2008    160\n",
      "2009    160\n",
      "2010    160\n",
      "2011    160\n",
      "2012    160\n",
      "2013    160\n",
      "2014    160\n",
      "2015    160\n",
      "2016    160\n",
      "Name: year, dtype: int64\n",
      "data1 shape: 178 data2 shape: 160\n",
      "(196, 2)\n",
      "18 36\n",
      "In data2 but not in data1: ['Bahamas, The', 'Congo, Dem. Rep.', 'Congo, Rep.', \"Côte d'Ivoire\", 'Egypt, Arab Rep.', 'Gambia, The', 'Guinea-Bissau', 'Hong Kong SAR, China', 'Israel', 'Korea, Rep.', 'Lao PDR', 'Macedonia, FYR', 'Russian Federation', 'Sco Tomi and Principe', 'Syrian Arab Republic', 'Taiwan', 'Venezuela, RB', 'Yemen, Rep.'] \n",
      "----\n",
      "In data1 but not in data2: ['Congo Democratic Republic', \"Cote d'Ivoire\", 'North Korea', 'Sierra Leone', 'Yemen', 'Uganda', 'Egypt', 'Syria', 'Laos', 'Russia', 'Guinea Bissau', 'Iran', 'Venezuela', 'Israel and West Bank', 'Morocco', 'Macedonia', 'Gambia', 'Albania', 'South Korea', 'Timor-Leste', 'Congo Republic', 'Swaziland', 'Cape Verde', 'Sao Tome and Principe', 'Suriname', 'Samoa', 'Micronesia', 'Grenada', 'Seychelles', 'Brunei Darussalam', 'Belize', 'Trinidad and Tobago', 'Antigua and Barbuda', 'Bahamas', 'Barbados', 'South Sudan']\n",
      "(1760, 9) (2099, 3)\n",
      "(2132, 10)\n"
     ]
    }
   ],
   "source": [
    "lpi_fsi_combined = mhf.combine_logistics_and_stability_features(\n",
    "    logistics_indices, fragility_index) # combine logistics (lpi) and fragility (fsi) indices"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### *Factory Location, Country and Continent*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "factory_address: 88 ; factory: 88\n",
      "Series([], Name: factory_address, dtype: int64) \n",
      "\n",
      "The unidentified factories...\n",
      " []\n",
      "factory shape:  (88, 4)\n",
      "Countries in both origin and destination:  ['South Africa', 'South Africa', 'South Africa']\n"
     ]
    }
   ],
   "source": [
    "# Generate Factory Metrics. Rerun if you get Index Error, Google's Fault\n",
    "factory_metrics = mhf.generate_factory_location_features(dobject)\n",
    "\n",
    "# Alternatively, if generate facotry location is too slow or break\n",
    "# then use already generated tables from this file below...\n",
    "#factory_metrics = pd.read_csv('./Data/Features/factory_map_premade.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Join them to main data (Next Step Depends on this!)\n",
    "dobject = mhf.add_factory_origin_features(dobject, factory_metrics)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Destination countries data:  (219, 5) Unique countries:  ['Afghanistan' 'Angola' 'Belize' 'Benin' 'Botswana' 'Burkina Faso'\n",
      " 'Burundi' 'Cameroon' 'Congo, DRC' \"Côte d'Ivoire\" 'Dominican Republic'\n",
      " 'Ethiopia' 'Ghana' 'Guatemala' 'Guinea' 'Guyana' 'Haiti' 'Kazakhstan'\n",
      " 'Kenya' 'Kyrgyzstan' 'Lebanon' 'Lesotho' 'Liberia' 'Libya' 'Malawi' 'Mali'\n",
      " 'Mozambique' 'Namibia' 'Nigeria' 'Pakistan' 'Rwanda' 'Senegal'\n",
      " 'Sierra Leone' 'South Africa' 'South Sudan' 'Sudan' 'Swaziland' 'Tanzania'\n",
      " 'Togo' 'Uganda' 'Vietnam' 'Zambia' 'Zimbabwe'] Origin countries data:  (150, 5) Unique countries:  ['Australia' 'Canada' 'China' 'Cyprus' 'France' 'Germany' 'Greece' 'India'\n",
      " 'Ireland' 'Italy' 'Netherlands' 'Norway' 'Poland' 'Puerto Rico'\n",
      " 'South Africa' 'South Korea' 'Spain' 'Sweden' 'Switzerland' 'Thailand'\n",
      " 'United Kingdom' 'United States']\n",
      "data1 shape: 43 data2 shape: 178\n",
      "(181, 2)\n",
      "138 3\n",
      "In data2 but not in data1: ['Congo Democratic Republic', \"Cote d'Ivoire\", 'Iraq', 'Chad', 'Somalia', 'Central African Republic', 'North Korea', 'Yemen', 'Myanmar', 'Bangladesh', 'Nepal', 'Uzbekistan', 'Sri Lanka', 'Colombia', 'Kyrgyz Republic', 'Egypt', 'Indonesia', 'Syria', 'Bosnia and Herzegovina', 'Bhutan', 'Laos', 'Mauritania', 'Tajikistan', 'Russia', 'Niger', 'Turkmenistan', 'Guinea Bissau', 'Cambodia', 'Papua New Guinea', 'Belarus', 'Equatorial Guinea', 'Iran', 'Eritrea', 'Serbia', 'Bolivia', 'China', 'Moldova', 'Nicaragua', 'Georgia', 'Azerbaijan', 'Cuba', 'Ecuador', 'Venezuela', 'Israel and West Bank', 'Peru', 'Philippines', 'Algeria', 'Saudi Arabia', 'Jordan', 'Honduras', 'Morocco', 'El Salvador', 'Macedonia', 'Thailand', 'Turkey', 'Gambia', 'Gabon', 'Mexico', 'Ukraine', 'Paraguay', 'Armenia', 'Cyprus', 'India', 'Albania', 'Jamaica', 'Malaysia', 'Tunisia', 'Brazil', 'Romania', 'Bulgaria', 'Croatia', 'Kuwait', 'Panama', 'Mongolia', 'Latvia', 'Estonia', 'Slovak Republic', 'Lithuania', 'Costa Rica', 'Poland', 'Hungary', 'Oman', 'Mauritius', 'Czech Republic', 'Uruguay', 'Greece', 'Argentina', 'South Korea', 'Germany', 'Spain', 'Slovenia', 'Italy', 'United States', 'France', 'United Kingdom', 'Portugal', 'Chile', 'Singapore', 'Netherlands', 'Japan', 'Austria', 'Denmark', 'Belgium', 'Canada', 'Australia', 'New Zealand', 'Switzerland', 'Ireland', 'Finland', 'Sweden', 'Norway', 'Timor-Leste', 'Congo Republic', 'Solomon Islands', 'Cape Verde', 'Maldives', 'Djibouti', 'Sao Tome and Principe', 'Comoros', 'Madagascar', 'Fiji', 'Suriname', 'Samoa', 'Micronesia', 'Grenada', 'Seychelles', 'Brunei Darussalam', 'Trinidad and Tobago', 'Antigua and Barbuda', 'Bahamas', 'Barbados', 'Bahrain', 'Montenegro', 'Qatar', 'United Arab Emirates', 'Malta', 'Luxembourg', 'Iceland'] \n",
      "----\n",
      "In data1 but not in data2: ['Congo, DRC', \"Côte d'Ivoire\", 'Kyrgyzstan']\n",
      "data1 shape: 43 data2 shape: 178\n",
      "(178, 2)\n",
      "135 0\n",
      "In data2 but not in data1: ['Iraq', 'Chad', 'Somalia', 'Central African Republic', 'North Korea', 'Yemen', 'Myanmar', 'Bangladesh', 'Nepal', 'Uzbekistan', 'Sri Lanka', 'Colombia', 'Egypt', 'Indonesia', 'Syria', 'Bosnia and Herzegovina', 'Bhutan', 'Laos', 'Mauritania', 'Tajikistan', 'Russia', 'Niger', 'Turkmenistan', 'Guinea Bissau', 'Cambodia', 'Papua New Guinea', 'Belarus', 'Equatorial Guinea', 'Iran', 'Eritrea', 'Serbia', 'Bolivia', 'China', 'Moldova', 'Nicaragua', 'Georgia', 'Azerbaijan', 'Cuba', 'Ecuador', 'Venezuela', 'Israel and West Bank', 'Peru', 'Philippines', 'Algeria', 'Saudi Arabia', 'Jordan', 'Honduras', 'Morocco', 'El Salvador', 'Macedonia', 'Thailand', 'Turkey', 'Gambia', 'Gabon', 'Mexico', 'Ukraine', 'Paraguay', 'Armenia', 'Cyprus', 'India', 'Albania', 'Jamaica', 'Malaysia', 'Tunisia', 'Brazil', 'Romania', 'Bulgaria', 'Croatia', 'Kuwait', 'Panama', 'Mongolia', 'Latvia', 'Estonia', 'Slovak Republic', 'Lithuania', 'Costa Rica', 'Poland', 'Hungary', 'Oman', 'Mauritius', 'Czech Republic', 'Uruguay', 'Greece', 'Argentina', 'South Korea', 'Germany', 'Spain', 'Slovenia', 'Italy', 'United States', 'France', 'United Kingdom', 'Portugal', 'Chile', 'Singapore', 'Netherlands', 'Japan', 'Austria', 'Denmark', 'Belgium', 'Canada', 'Australia', 'New Zealand', 'Switzerland', 'Ireland', 'Finland', 'Sweden', 'Norway', 'Timor-Leste', 'Congo Republic', 'Solomon Islands', 'Cape Verde', 'Maldives', 'Djibouti', 'Sao Tome and Principe', 'Comoros', 'Madagascar', 'Fiji', 'Suriname', 'Samoa', 'Micronesia', 'Grenada', 'Seychelles', 'Brunei Darussalam', 'Trinidad and Tobago', 'Antigua and Barbuda', 'Bahamas', 'Barbados', 'Bahrain', 'Montenegro', 'Qatar', 'United Arab Emirates', 'Malta', 'Luxembourg', 'Iceland'] \n",
      "----\n",
      "In data1 but not in data2: []\n",
      "data1 shape: 22 data2 shape: 178\n",
      "(179, 2)\n",
      "157 1\n",
      "In data2 but not in data1: ['Sudan', 'Congo, DRC', \"Côte d'Ivoire\", 'Iraq', 'Zimbabwe', 'Chad', 'Somalia', 'Haiti', 'Pakistan', 'Afghanistan', 'Guinea', 'Liberia', 'Central African Republic', 'North Korea', 'Burundi', 'Sierra Leone', 'Yemen', 'Myanmar', 'Bangladesh', 'Nepal', 'Uganda', 'Nigeria', 'Uzbekistan', 'Rwanda', 'Sri Lanka', 'Ethiopia', 'Colombia', 'Kyrgyzstan', 'Malawi', 'Burkina Faso', 'Egypt', 'Indonesia', 'Kenya', 'Syria', 'Bosnia and Herzegovina', 'Cameroon', 'Angola', 'Togo', 'Bhutan', 'Laos', 'Mauritania', 'Tajikistan', 'Russia', 'Niger', 'Turkmenistan', 'Guinea Bissau', 'Cambodia', 'Dominican Republic', 'Papua New Guinea', 'Belarus', 'Guatemala', 'Equatorial Guinea', 'Iran', 'Eritrea', 'Serbia', 'Bolivia', 'Moldova', 'Nicaragua', 'Georgia', 'Azerbaijan', 'Cuba', 'Ecuador', 'Venezuela', 'Lebanon', 'Zambia', 'Israel and West Bank', 'Peru', 'Philippines', 'Vietnam', 'Tanzania', 'Algeria', 'Saudi Arabia', 'Jordan', 'Honduras', 'Morocco', 'El Salvador', 'Macedonia', 'Mozambique', 'Mali', 'Turkey', 'Gambia', 'Gabon', 'Mexico', 'Ukraine', 'Paraguay', 'Kazakhstan', 'Armenia', 'Benin', 'Namibia', 'Albania', 'Libya', 'Botswana', 'Jamaica', 'Malaysia', 'Senegal', 'Tunisia', 'Brazil', 'Romania', 'Bulgaria', 'Croatia', 'Kuwait', 'Ghana', 'Panama', 'Mongolia', 'Latvia', 'Estonia', 'Slovak Republic', 'Lithuania', 'Costa Rica', 'Hungary', 'Oman', 'Mauritius', 'Czech Republic', 'Uruguay', 'Argentina', 'Slovenia', 'Portugal', 'Chile', 'Singapore', 'Japan', 'Austria', 'Denmark', 'Belgium', 'New Zealand', 'Finland', 'Timor-Leste', 'Congo Republic', 'Solomon Islands', 'Swaziland', 'Lesotho', 'Cape Verde', 'Maldives', 'Djibouti', 'Sao Tome and Principe', 'Comoros', 'Madagascar', 'Fiji', 'Suriname', 'Samoa', 'Micronesia', 'Guyana', 'Grenada', 'Seychelles', 'Brunei Darussalam', 'Belize', 'Trinidad and Tobago', 'Antigua and Barbuda', 'Bahamas', 'Barbados', 'Bahrain', 'Montenegro', 'Qatar', 'United Arab Emirates', 'Malta', 'Luxembourg', 'Iceland', 'South Sudan'] \n",
      "----\n",
      "In data1 but not in data2: ['Puerto Rico']\n",
      "Index(['country', 'del_date_scheduled_yr', 'count', 'sum', 'mean', 'fsi',\n",
      "       'year', 'customs', 'infra', 'intl_ship', 'logistic_qlty', 'lpi',\n",
      "       'timeliness', 'track_trace'],\n",
      "      dtype='object')             count         sum        mean         fsi         year  \\\n",
      "count  224.000000  224.000000  224.000000  223.000000   223.000000   \n",
      "mean    47.575893    5.665179    0.099820   89.452466  2011.094170   \n",
      "std     53.032806    9.669862    0.156302   13.769410     2.666967   \n",
      "min      1.000000    0.000000    0.000000   62.700000  2006.000000   \n",
      "25%      6.000000    0.000000    0.000000   77.850000  2009.000000   \n",
      "50%     31.000000    1.000000    0.016261   89.300000  2011.000000   \n",
      "75%     75.000000    7.250000    0.168422  100.700000  2013.000000   \n",
      "max    343.000000   52.000000    1.000000  114.500000  2015.000000   \n",
      "\n",
      "          customs       infra   intl_ship  logistic_qlty         lpi  \\\n",
      "count  201.000000  201.000000  201.000000     201.000000  201.000000   \n",
      "mean     2.313415    2.288051    2.569097       2.461370    2.533689   \n",
      "std      0.345915    0.409343    0.365882       0.384024    0.348772   \n",
      "min      1.500000    1.272487    1.571429       1.428571    1.609960   \n",
      "25%      2.083330    2.000000    2.316865       2.214290    2.296616   \n",
      "50%      2.234982    2.234040    2.551556       2.423715    2.490255   \n",
      "75%      2.525862    2.541018    2.831315       2.726851    2.769116   \n",
      "max      3.351635    3.789673    3.536252       3.682853    3.671317   \n",
      "\n",
      "       timeliness  track_trace  \n",
      "count  201.000000   201.000000  \n",
      "mean     2.981279     2.557518  \n",
      "std      0.397951     0.405674  \n",
      "min      1.665079     1.600000  \n",
      "25%      2.705375     2.300708  \n",
      "50%      2.972373     2.533333  \n",
      "75%      3.264186     2.851983  \n",
      "max      4.033038     3.831807          country del_date_scheduled_yr  count  sum  mean    fsi    year  \\\n",
      "0  Afghanistan                  2015      3  0.0   0.0  107.9  2015.0   \n",
      "1       Angola                  2007      2  0.0   0.0   84.9  2007.0   \n",
      "2       Angola                  2011      2  0.0   0.0   84.6  2011.0   \n",
      "3       Angola                  2013      3  0.0   0.0   87.1  2013.0   \n",
      "4       Belize                  2011      1  0.0   0.0   67.7  2011.0   \n",
      "\n",
      "    customs     infra  intl_ship  logistic_qlty       lpi  timeliness  \\\n",
      "0  2.087300  1.827212   2.180856       2.132391  2.105428    2.546671   \n",
      "1  2.400000  2.250000   2.500000       2.500000  2.477522    2.833330   \n",
      "2  2.041666  2.085184   2.316865       2.010990  2.261686    2.797021   \n",
      "3  2.350877  2.294066   2.524102       2.156904  2.409500    2.804960   \n",
      "4       NaN       NaN        NaN            NaN       NaN         NaN   \n",
      "\n",
      "   track_trace  \n",
      "0     1.810089  \n",
      "1     2.375000  \n",
      "2     2.271456  \n",
      "3     2.295228  \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "4          NaN  \n"
     ]
    }
   ],
   "source": [
    "destination_metrics, origin_metrics = mhf.destination_and_origin_lpi_fsi_indicators(\n",
    "    dobject, lpi_fsi_combined)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Drop the straggler columns\n",
    "origin_metrics.drop('country', axis=1, inplace=True)\n",
    "origin_metrics.drop('year', axis=1, inplace=True)\n",
    "destination_metrics.drop('year', axis=1, inplace=True)\n",
    "# Change the columns names for easier tracking\n",
    "destination_metrics.columns = [\"dest_\"+x for x in destination_metrics.columns]\n",
    "origin_metrics.columns = [\"orig_\"+x for x in origin_metrics.columns]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "dobject=mhf.add_lpi_fsi_features(dobject, origin_metrics, destination_metrics) # Must Happen after they are generated!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(10324, 88) Index(['proj_code', 'pq_no', 'po_no', 'ship_no', 'country', 'mngr',\n",
      "       'fulfill_via', 'vendor_terms', 'ship_mode', 'pq_date', 'po_date',\n",
      "       'prod_grp', 'sub_class', 'vendor', 'itm_desc', 'molecule_test', 'brand',\n",
      "       'dosage', 'dosage_form', 'factory', 'first_line', 'weight',\n",
      "       'freight_cost', 'pq_date_new_yr', 'pq_date_new_mn', 'pq_date_new_dy',\n",
      "       'po_date_new_yr', 'po_date_new_mn', 'po_date_new_dy',\n",
      "       'del_date_scheduled_yr', 'del_date_scheduled_mn',\n",
      "       'del_date_scheduled_dy', 'del_date_client_yr', 'del_date_client_mn',\n",
      "       'del_date_client_dy', 'del_date_recorded_yr', 'del_date_recorded_mn',\n",
      "       'del_date_recorded_dy', 'pq_date_new_wd', 'pq_date_new_wk',\n",
      "       'pq_date_new_qt', 'po_date_new_wd', 'po_date_new_wk', 'po_date_new_qt',\n",
      "       'del_date_scheduled_wd', 'del_date_scheduled_wk',\n",
      "       'del_date_scheduled_qt', 'del_date_client_wd', 'del_date_client_wk',\n",
      "       'del_date_client_qt', 'del_date_recorded_wd', 'del_date_recorded_wk',\n",
      "       'del_date_recorded_qt', 'ship_config', 'weight_captured_seperately',\n",
      "       'freight_invoiced_seperately', 'freight_in_cmdty_cost', 'delayed',\n",
      "       'factory_address', 'origin_country', 'origin_continent', 'name',\n",
      "       'dest_country', 'dest_del_date_scheduled_yr', 'dest_count', 'dest_sum',\n",
      "       'dest_mean', 'dest_fsi', 'dest_customs', 'dest_infra', 'dest_intl_ship',\n",
      "       'dest_logistic_qlty', 'dest_lpi', 'dest_timeliness', 'dest_track_trace',\n",
      "       'orig_origin_country', 'orig_del_date_scheduled_yr', 'orig_count',\n",
      "       'orig_sum', 'orig_mean', 'orig_fsi', 'orig_customs', 'orig_infra',\n",
      "       'orig_intl_ship', 'orig_logistic_qlty', 'orig_lpi', 'orig_timeliness',\n",
      "       'orig_track_trace'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "print(dobject.shape,dobject.columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Look at mean - average rate of delays per country, and correlation with other variables\n",
    "#mhf.country_metrics_corr(origin_metrics) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# Look at mean - average rate of delays per country, and correlation with other variables\n",
    "#mhf.country_metrics_corr(destination_metrics) # Look at mean"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Save the blocks of data separately in *\"Data/Features\"* folder\n",
    "#### *To be uploaded in next NoteBook - EDA and Feature Selection*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total Number of Columns: 88\n",
      "Breakdown....\n",
      "\n",
      "Type: category , Count: 30 \n",
      "Columns and null counts---: \n",
      "pq_date_new_yr           0\n",
      "pq_date_new_mn           0\n",
      "pq_date_new_dy           0\n",
      "po_date_new_yr           0\n",
      "po_date_new_mn           0\n",
      "po_date_new_dy           0\n",
      "del_date_scheduled_mn    0\n",
      "del_date_scheduled_dy    0\n",
      "del_date_client_yr       0\n",
      "del_date_client_mn       0\n",
      "del_date_client_dy       0\n",
      "del_date_recorded_yr     0\n",
      "del_date_recorded_mn     0\n",
      "del_date_recorded_dy     0\n",
      "pq_date_new_wd           0\n",
      "pq_date_new_wk           0\n",
      "pq_date_new_qt           0\n",
      "po_date_new_wd           0\n",
      "po_date_new_wk           0\n",
      "po_date_new_qt           0\n",
      "del_date_scheduled_wd    0\n",
      "del_date_scheduled_wk    0\n",
      "del_date_scheduled_qt    0\n",
      "del_date_client_wd       0\n",
      "del_date_client_wk       0\n",
      "del_date_client_qt       0\n",
      "del_date_recorded_wd     0\n",
      "del_date_recorded_wk     0\n",
      "del_date_recorded_qt     0\n",
      "delayed                  0\n",
      "dtype: int64\n",
      "\n",
      "Type: float64 , Count: 20 \n",
      "Columns and null counts---: \n",
      "dest_sum              0\n",
      "dest_mean             0\n",
      "dest_fsi              0\n",
      "dest_customs          0\n",
      "dest_infra            0\n",
      "dest_intl_ship        0\n",
      "dest_logistic_qlty    0\n",
      "dest_lpi              0\n",
      "dest_timeliness       0\n",
      "dest_track_trace      0\n",
      "orig_sum              0\n",
      "orig_mean             0\n",
      "orig_fsi              0\n",
      "orig_customs          0\n",
      "orig_infra            0\n",
      "orig_intl_ship        0\n",
      "orig_logistic_qlty    0\n",
      "orig_lpi              0\n",
      "orig_timeliness       0\n",
      "orig_track_trace      0\n",
      "dtype: int64\n",
      "\n",
      "Type: int64 , Count: 4 \n",
      "Columns and null counts---: \n",
      "dest_del_date_scheduled_yr    0\n",
      "dest_count                    0\n",
      "orig_del_date_scheduled_yr    0\n",
      "orig_count                    0\n",
      "dtype: int64\n",
      "\n",
      "Type: object , Count: 34 \n",
      "Columns and null counts---: \n",
      "proj_code                      0\n",
      "pq_no                          0\n",
      "po_no                          0\n",
      "ship_no                        0\n",
      "country                        0\n",
      "mngr                           0\n",
      "fulfill_via                    0\n",
      "vendor_terms                   0\n",
      "ship_mode                      0\n",
      "pq_date                        0\n",
      "po_date                        0\n",
      "prod_grp                       0\n",
      "sub_class                      0\n",
      "vendor                         0\n",
      "itm_desc                       0\n",
      "molecule_test                  0\n",
      "brand                          0\n",
      "dosage                         0\n",
      "dosage_form                    0\n",
      "factory                        0\n",
      "first_line                     0\n",
      "weight                         0\n",
      "freight_cost                   0\n",
      "del_date_scheduled_yr          0\n",
      "ship_config                    0\n",
      "weight_captured_seperately     0\n",
      "freight_invoiced_seperately    0\n",
      "freight_in_cmdty_cost          0\n",
      "factory_address                0\n",
      "origin_country                 0\n",
      "origin_continent               0\n",
      "name                           0\n",
      "dest_country                   0\n",
      "orig_origin_country            0\n",
      "dtype: int64\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "dict_keys(['category', 'float64', 'int64', 'object'])"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Fill the nulls\n",
    "nullc = dobject.isnull().sum()[dobject.isnull().sum()>0].index.tolist()\n",
    "for c in nullc:\n",
    "    try:\n",
    "        cmean = dobject[c].mean()\n",
    "        dobject[c].fillna(cmean, inplace=True)\n",
    "    except:\n",
    "        pass\n",
    "# Split the numerical columns from dobject to separate df\n",
    "dobject['delayed'] = pd.Categorical(dobject.delayed)\n",
    "mainblocks = mhf.get_blocks_by_dtype(dobject)\n",
    "# Convert to categorical\n",
    "for c in mainblocks['object']:\n",
    "    mainblocks['object'][c] = pd.Categorical(mainblocks['object'][c])\n",
    "# Do the do_purch, do_del split here as well\n",
    "mainblocks.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>country</th>\n",
       "      <th>factory</th>\n",
       "      <th>vendor</th>\n",
       "      <th>molecule_test</th>\n",
       "      <th>brand</th>\n",
       "      <th>del_date_scheduled_yr</th>\n",
       "      <th>country_qtysum</th>\n",
       "      <th>country_qtycount</th>\n",
       "      <th>country_qtymean</th>\n",
       "      <th>country_valsum</th>\n",
       "      <th>...</th>\n",
       "      <th>country_valmean</th>\n",
       "      <th>country_inssum</th>\n",
       "      <th>country_inscount</th>\n",
       "      <th>country_insmean</th>\n",
       "      <th>country_weightsum</th>\n",
       "      <th>country_weightcount</th>\n",
       "      <th>country_weightmean</th>\n",
       "      <th>country_costsum</th>\n",
       "      <th>country_costcount</th>\n",
       "      <th>country_costmean</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Côte d'Ivoire</td>\n",
       "      <td>Ranbaxy Fine Chemicals LTD</td>\n",
       "      <td>RANBAXY Fine Chemicals LTD.</td>\n",
       "      <td>HIV, Reveal G3 Rapid HIV-1 Antibody Test</td>\n",
       "      <td>Reveal</td>\n",
       "      <td>2006</td>\n",
       "      <td>29553</td>\n",
       "      <td>14</td>\n",
       "      <td>2110.928571</td>\n",
       "      <td>370713.7</td>\n",
       "      <td>...</td>\n",
       "      <td>26479.55</td>\n",
       "      <td>0.0343</td>\n",
       "      <td>14</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>55207.914059</td>\n",
       "      <td>14</td>\n",
       "      <td>3943.422433</td>\n",
       "      <td>941845.702504</td>\n",
       "      <td>14</td>\n",
       "      <td>67274.693036</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Côte d'Ivoire</td>\n",
       "      <td>ABBVIE GmbH &amp; Co.KG Wiesbaden</td>\n",
       "      <td>Abbott GmbH &amp; Co. KG</td>\n",
       "      <td>HIV 1/2, Determine Complete HIV Kit</td>\n",
       "      <td>Determine</td>\n",
       "      <td>2006</td>\n",
       "      <td>29553</td>\n",
       "      <td>14</td>\n",
       "      <td>2110.928571</td>\n",
       "      <td>370713.7</td>\n",
       "      <td>...</td>\n",
       "      <td>26479.55</td>\n",
       "      <td>0.0343</td>\n",
       "      <td>14</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>55207.914059</td>\n",
       "      <td>14</td>\n",
       "      <td>3943.422433</td>\n",
       "      <td>941845.702504</td>\n",
       "      <td>14</td>\n",
       "      <td>67274.693036</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Côte d'Ivoire</td>\n",
       "      <td>Bio-Rad Laboratories</td>\n",
       "      <td>BIO-RAD LABORATORIES (FRANCE)</td>\n",
       "      <td>HIV, Genie II HIV-1/HIV-2 Kit</td>\n",
       "      <td>Genie</td>\n",
       "      <td>2006</td>\n",
       "      <td>29553</td>\n",
       "      <td>14</td>\n",
       "      <td>2110.928571</td>\n",
       "      <td>370713.7</td>\n",
       "      <td>...</td>\n",
       "      <td>26479.55</td>\n",
       "      <td>0.0343</td>\n",
       "      <td>14</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>55207.914059</td>\n",
       "      <td>14</td>\n",
       "      <td>3943.422433</td>\n",
       "      <td>941845.702504</td>\n",
       "      <td>14</td>\n",
       "      <td>67274.693036</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Côte d'Ivoire</td>\n",
       "      <td>Pacific Biotech, Thailand</td>\n",
       "      <td>Orasure Technologies Inc.</td>\n",
       "      <td>HIV 1/2, OraQuick Advance HIV Rapid Antibody Kit</td>\n",
       "      <td>OraQuick</td>\n",
       "      <td>2006</td>\n",
       "      <td>29553</td>\n",
       "      <td>14</td>\n",
       "      <td>2110.928571</td>\n",
       "      <td>370713.7</td>\n",
       "      <td>...</td>\n",
       "      <td>26479.55</td>\n",
       "      <td>0.0343</td>\n",
       "      <td>14</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>55207.914059</td>\n",
       "      <td>14</td>\n",
       "      <td>3943.422433</td>\n",
       "      <td>941845.702504</td>\n",
       "      <td>14</td>\n",
       "      <td>67274.693036</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Côte d'Ivoire</td>\n",
       "      <td>Bio-Rad Laboratories</td>\n",
       "      <td>BIO-RAD LABORATORIES (FRANCE)</td>\n",
       "      <td>HIV, Genie II HIV-1/HIV-2 Kit</td>\n",
       "      <td>Genie</td>\n",
       "      <td>2006</td>\n",
       "      <td>29553</td>\n",
       "      <td>14</td>\n",
       "      <td>2110.928571</td>\n",
       "      <td>370713.7</td>\n",
       "      <td>...</td>\n",
       "      <td>26479.55</td>\n",
       "      <td>0.0343</td>\n",
       "      <td>14</td>\n",
       "      <td>0.00245</td>\n",
       "      <td>55207.914059</td>\n",
       "      <td>14</td>\n",
       "      <td>3943.422433</td>\n",
       "      <td>941845.702504</td>\n",
       "      <td>14</td>\n",
       "      <td>67274.693036</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         country                        factory  \\\n",
       "0  Côte d'Ivoire     Ranbaxy Fine Chemicals LTD   \n",
       "1  Côte d'Ivoire  ABBVIE GmbH & Co.KG Wiesbaden   \n",
       "2  Côte d'Ivoire           Bio-Rad Laboratories   \n",
       "3  Côte d'Ivoire      Pacific Biotech, Thailand   \n",
       "4  Côte d'Ivoire           Bio-Rad Laboratories   \n",
       "\n",
       "                          vendor  \\\n",
       "0    RANBAXY Fine Chemicals LTD.   \n",
       "1           Abbott GmbH & Co. KG   \n",
       "2  BIO-RAD LABORATORIES (FRANCE)   \n",
       "3      Orasure Technologies Inc.   \n",
       "4  BIO-RAD LABORATORIES (FRANCE)   \n",
       "\n",
       "                                      molecule_test      brand  \\\n",
       "0          HIV, Reveal G3 Rapid HIV-1 Antibody Test     Reveal   \n",
       "1               HIV 1/2, Determine Complete HIV Kit  Determine   \n",
       "2                     HIV, Genie II HIV-1/HIV-2 Kit      Genie   \n",
       "3  HIV 1/2, OraQuick Advance HIV Rapid Antibody Kit   OraQuick   \n",
       "4                     HIV, Genie II HIV-1/HIV-2 Kit      Genie   \n",
       "\n",
       "  del_date_scheduled_yr  country_qtysum  country_qtycount  country_qtymean  \\\n",
       "0                  2006           29553                14      2110.928571   \n",
       "1                  2006           29553                14      2110.928571   \n",
       "2                  2006           29553                14      2110.928571   \n",
       "3                  2006           29553                14      2110.928571   \n",
       "4                  2006           29553                14      2110.928571   \n",
       "\n",
       "   country_valsum        ...         country_valmean  country_inssum  \\\n",
       "0        370713.7        ...                26479.55          0.0343   \n",
       "1        370713.7        ...                26479.55          0.0343   \n",
       "2        370713.7        ...                26479.55          0.0343   \n",
       "3        370713.7        ...                26479.55          0.0343   \n",
       "4        370713.7        ...                26479.55          0.0343   \n",
       "\n",
       "   country_inscount  country_insmean  country_weightsum  country_weightcount  \\\n",
       "0                14          0.00245       55207.914059                   14   \n",
       "1                14          0.00245       55207.914059                   14   \n",
       "2                14          0.00245       55207.914059                   14   \n",
       "3                14          0.00245       55207.914059                   14   \n",
       "4                14          0.00245       55207.914059                   14   \n",
       "\n",
       "   country_weightmean  country_costsum  country_costcount  country_costmean  \n",
       "0         3943.422433    941845.702504                 14      67274.693036  \n",
       "1         3943.422433    941845.702504                 14      67274.693036  \n",
       "2         3943.422433    941845.702504                 14      67274.693036  \n",
       "3         3943.422433    941845.702504                 14      67274.693036  \n",
       "4         3943.422433    941845.702504                 14      67274.693036  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dnum_country.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "entities =['country', 'factory', 'vendor', 'brand', 'molecule_test']\n",
    "# Drop redundant columns in \n",
    "for d in [dnum_country, dnum_factory, dnum_vendor, dnum_brand, dnum_molecule_test]:\n",
    "    try:\n",
    "        d.drop(entities, axis=1, inplace=True)\n",
    "    except:\n",
    "        pass\n",
    "# Make columns index\n",
    "c=['country_qtycount']+[c for c in dnum_country.columns if \n",
    "                                ('sum' in c) or ('mean' in c) or ('yr' in c)]\n",
    "v=['vendor_qtycount']+[c for c in dnum_vendor.columns if \n",
    "                                ('sum' in c) or ('mean' in c) or ('yr' in c)]\n",
    "f=['factory_qtycount']+[c for c in dnum_factory.columns if \n",
    "                                ('sum' in c) or ('mean' in c) or ('yr' in c)]\n",
    "b=['brand_qtycount']+[c for c in dnum_brand.columns if \n",
    "                                ('sum' in c) or ('mean' in c) or ('yr' in c)]\n",
    "m=['molecule_test_qtycount']+[c for c in dnum_molecule_test.columns if \n",
    "                                ('sum' in c) or ('mean' in c) or ('yr' in c)]\n",
    "# Drop duplicate columns for counts\n",
    "dnum_country, dnum_vendor, dnum_factory,dnum_brand, dnum_molecule_test = dnum_country[c],dnum_vendor[v], dnum_factory[f],dnum_brand[b],dnum_molecule_test[m]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_0_dnum.csv\n",
      "_1_dnum_country.csv\n",
      "_2_dnum_vendor.csv\n",
      "_3_dnum_factory.csv\n",
      "_4_dnum_brand.csv\n",
      "_5_dnum_molecule_test.csv\n",
      "_6_dnum_lpifsi.csv\n",
      "_7_ddate.csv\n",
      "_8_dobject.csv\n",
      "_9_dtrend.csv\n"
     ]
    }
   ],
   "source": [
    "# Merge the categorical elements\n",
    "dobject = pd.concat([mainblocks['category'],mainblocks['object']], axis=1)\n",
    "# Merge the new numerical festures\n",
    "dnum_lpifsi = pd.concat([mainblocks['float64'], mainblocks['int64']],axis=1)\n",
    "# Make lists for the save loop\n",
    "dchunks = [dnum,dnum_country, dnum_vendor,dnum_factory, dnum_brand\n",
    "           ,dnum_molecule_test,dnum_lpifsi,ddate, dobject, dtrend]\n",
    "dnames = ['dnum','dnum_country', 'dnum_vendor', 'dnum_factory', 'dnum_brand'\n",
    "          , 'dnum_molecule_test','dnum_lpifsi', 'ddate', 'dobject', 'dtrend']\n",
    "import datetime as dt\n",
    "import os\n",
    "for i in range(len(dnames)):\n",
    "    fn= \"_\"+str(i)+\"_\"+dnames[i]+\".csv\"\n",
    "    path= os.curdir+'\\Data\\Features\\\\'\n",
    "    print(fn)\n",
    "    dchunks[i].to_csv(path+fn)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "# **CheckPoint 1**\n",
    "### Next Section: Exploratory Data Analysis & Feature Selection\n",
    "---"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
